Winforms .net Datepicker не уважает 24-часовой формат? - PullRequest
4 голосов
/ 25 июня 2010

У меня есть указатель времени (datetimepicker), отформатированный как ЧЧ: мм - 24-часовой формат.Он отображает от 00 до 24 и от 00 до 59 и не позволяет вводить недопустимые значения.Это именно то, что я хочу.

Тем не менее, он возвращает значения как 12 часов с индикаторами AM и PM.Это означает, что когда пользователь вводит «00», он возвращается как «12», а «14» возвращается как «2:00».Это НЕ то, что я хочу.

Я могу проверить и преобразовать эти нежелательные возвращаемые значения, но, конечно, (?) Есть более элегантный способ убедить эту вещь дать мне значения, которые я хочу, вместо проверки наэти особые условия?Какое-то простое свойство, которое я, возможно, упустил из виду?

Ответы [ 2 ]

4 голосов
/ 25 июня 2010

Когда вы читаете значение, вам нужно использовать:

string value = dateTimePicker.Value.ToString("HH:mm");

Если вы просто используете Value.ToString(), вы получите форматирование строки по умолчанию (12 часов).

4 голосов
/ 25 июня 2010

Как вы получаете введенное значение времени от элемента управления?

Если у вас есть элемент управления DateTimePicker и для его свойства Format установлено значение Custom, а для свойства CustomFormat - HH:mm, вы получите 24 время в формате часа (как тип DateTime) при чтении свойства Value.

РЕДАКТИРОВАТЬ: Если вы используете значение ToString() (как вы сказали в комментарии выше), это будет использовать ваши текущие настройки локализации. Вам было бы намного лучше читать значения из DateTime (т.е. DateTime.Hour DateTime.Minute).

...