Как разделить порции времени для comboBox - PullRequest
0 голосов
/ 18 октября 2011

C # проблема ... Я получаю из базы данных тип datetime 01.01.1900 08:00:00 AM, и я хочу взять только часть времени и заполнить три комбинированных списка HH MM (AM или PM).Я должен сделать то же самое для двух разных наборов данных, которые я получаю ... Понятия не имею, как это сделать ..

Кто-нибудь может помочь?

Это то, что я получилна данный момент ... я новичок: 0)

    DateTime bh = Convert.ToDateTime(puf.GetResults["Begin_Hour"].ToString());
    DateTime eh = Convert.ToDateTime(puf.GetResults["End_Hour"].ToString());
    string bhs=bh.ToShortTimeString();
    string ehs=eh.ToShortTimeString();

Ответы [ 3 ]

0 голосов
/ 18 октября 2011

Используйте это (dt - ваш объект DateTime)

bhs.Format("{0:t}", dt);

Результат будет в желаемом формате: "16:05 PM"

Вы можете прочитать больше здесь: Формат строки для DateTime

0 голосов
/ 18 октября 2011

Если вы используете object / datatables, возможно, будет хорошим вариантом просто установить свойства DisplayMember / ValueMember вместе со свойством FormatString. Установите FormattingEnabled = true, FormatString = "t", DisplayMember = ValueMember = "[Begin_Hour|End_Hour]".

Обратите внимание, что синтаксис [|] заимствован из Regex, что означает, что любое значение будет работать. Затем просто назначьте базовый источник данных свойству ComboBox.DataSource. Обычно хорошей идеей является обработка отображения / форматирования в ваших элементах пользовательского интерфейса и сохранение элементов данных без изменений, поэтому многие элементы управления предоставляют эти различные свойства отображения данных.

0 голосов
/ 18 октября 2011

То, что у вас должно работать нормально, чтобы просто получить время.

Вы можете использовать метод ToString(), который имеет перегрузку, когда вы можете задавать свои собственные форматы.См. Ссылку MSDN .

. Таким образом, вы можете использовать bhs.ToString("t"); для печати часов, минут и AM / PM.

...