Исключение выдачи DateTime.ParseExact

Я почти уверен, что делаю какую-то очень глупую ошибку, но это сводит меня с ума.

Я пытаюсь сделать следующее:

var dateTime = DateTime.ParseExact("08/24/2016 12:00:00 AM", "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);

Но я продолжаю получать следующее исключение: «Строка не была распознана как допустимый DateTime».

Я пробовал: "M/dd/yyyy HH:mm:ss tt" "MM'/'dd'/'yyyy HH:mm:ss tt" "M'/'dd'/'yyyy HH:mm:ss tt "

Но пока ничего не работает... Будем признательны за любую помощь.


person Talon    schedule 20.02.2017    source источник
comment
У меня работает, получаю вывод 24.08.2016 12:00:00   -  person imsome1    schedule 20.02.2017
comment
Измените строку формата на это: "MM/dd/yyyy hh:mm:ss tt"   -  person Pikoh    schedule 20.02.2017


Ответы (3)


HH ищет 24-часовой формат, но вы также передаете AM и указываете tt - синтаксический анализатор не может с этим справиться. Вам нужно либо искать 12-часовую строку:

var dateTime = DateTime.ParseExact("08/24/2016 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);

используя hh, или удалите часть AM/tt.

person James Thorpe    schedule 20.02.2017
comment
Хороший способ запомнить это так: hh — маленькие часы, HH — большие часы. - person die maus; 20.02.2017
comment
Я знал, что это что-то маленькое... спасибо! - person Talon; 20.02.2017

Используйте hh для 12-часового формата вместо HH для 24-часового формата. Эта информация уже находится в AM/PM и не может быть обработана методом дважды.

var dateTime = DateTime.ParseExact("08/24/2016 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
person fubo    schedule 20.02.2017
comment
Я знал, что это что-то маленькое... спасибо! - person Talon; 20.02.2017

Вам нужно использовать hh вместо HH, потому что HH используется для 24-часового формата, и вы также указываете am pm в формате

var dateTime = DateTime.ParseExact("08/24/2016 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
person Mairaj Ahmad    schedule 20.02.2017
comment
Я знал, что это что-то маленькое... спасибо! - person Talon; 20.02.2017