DateTime.ParseExact не работает вообще, почему? - PullRequest
6 голосов
/ 16 ноября 2010

Я пытаюсь разобрать следующие String в DateTime объект в c #:

DateTime.ParseExact("20101108 230125", "yyyyMMdd hhmmss", null)

, хотя значение выглядит правильным, метод ParseExact просто дает мне следующее:

Строка не была распознана как действительный DateTime.

Может кто-нибудь сказать мне, почему и как я могу проанализировать вышеупомянутую строку, не делая это вручную?Разве ParseExact не предназначено для такого случая?

Ответы [ 2 ]

20 голосов
/ 16 ноября 2010

Вы неправильно указали формат часов, должен быть в верхнем регистре:

DateTime.ParseExact("20101108 230125","yyyyMMdd HHmmss", null)

Нижний регистр hh указывает, что время использует 12-часовые часы (с AM / PM). Прописные буквы HH - это 24-часовое время.

Подробную информацию смотрите в документации о пользовательских строках формата DateTime .

2 голосов
/ 16 ноября 2010

Попробуйте использовать:

var dt = DateTime.ParseExact("20101108 230125", "yyyyMMdd HHmmss", null)

"Чч" для 12 часов времени и "ЧЧ" для 24 часов.

...