Извлечь значения из DateTime - PullRequest
0 голосов
/ 16 марта 2012

Я работаю над редактированием формы администратора и заполняю два DropDownLists (часы и минуты) из БД. Мне нужно извлечь часы ( 12-часовой формат ) и минуты из возвращенного объекта DateTime в БД. Вот что я попробовал:

DateTime dt = DateTime.Parse(biz.GetStartDateByID(classID).ToString());
int hrs = Convert.ToDateTime(dt.ToString()).Hour;

Для «2012-03-08 22: 45: 00.000» в БД это дает «22» для часов. Как лучше всего извлечь часы в 12-часовом формате и минуты? Например, если бы значение часов в объекте DateTime было «18», мне бы понадобилось его значение «6».

Ответы [ 4 ]

1 голос
/ 16 марта 2012

Попробуйте:

String.Format("{0:hh}", dt);

Это даст вам час в 12-часовом формате с добавлением нуля.

Без заполнения нулями:

String.Format("{0:h}", dt);
0 голосов
/ 16 марта 2012

Просто используйте правильный формат для преобразования DateTime в строку

DateTime dt = DateTime.Parse(biz.GetStartDateByID(classID).ToString());
int hrs = Convert.ToDateTime(dt.ToString("hh:mm:ss")).Hour;

Для справки, пожалуйста, посмотрите на это

0 голосов
/ 16 марта 2012
int hrs24 = dt.Hour;
int hrs12 = hrs24 > 12 ? hrs24 - 12 : (hrs24 == 0 ? 12 : hrs24);
0 голосов
/ 16 марта 2012
DateTime.Hour % 12

Это даст 0-11, конечно ... Вы хотите 1-12?Если так:

((DateTime.Hour + 11) % 12) + 1

Я не думаю, что есть что-то более простое встроенное ...

, вы также можете перейти по этой ссылке ... http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...