Проблема разбора DateTime - PullRequest
5 голосов
/ 21 июля 2010

Я пытаюсь разобрать эту дату и время, но она всегда возвращает false.

 DateTime.TryParseExact("07/01/2007 12:15", "mm/dd/yyyy HH:mm", new CultureInfo("en-US"), DateTimeStyles.None, out met)

Ответы [ 2 ]

22 голосов
/ 21 июля 2010

Шаблон для месяца: Капитал MM:

"MM/dd/yyyy HH:mm"

mm обозначает минуты, и вы уже использовали его в конце.

6 голосов
/ 21 июля 2010

Проблема в том, что во время выполнения он находит две компоненты минут в данной строке, как указано форматом для синтаксического анализа.Таким образом, вы не можете создать действительный объект DateTime из заданной строки ввода с указанным форматом.Он находит 07 и 15 как минуты, так и проблемы.

Когда вы запустите код с ParseExact и без TryParse, вы получите следующее исключение.

System.FormatException: шаблон DateTime 'm' появляется более одного раза с разными значениями.

Решение : Обратите внимание, что mm для минут, MM длямесяцами.В вашем конкретном случае вам нужно указать, какая часть является месяцем, а какая минутой.Предполагая, что вам нужно 07 в качестве месяца, вот исправленная версия вашего кода.

DateTime.TryParseExact("07/01/2007 12:15", "MM/dd/yyyy HH:mm", new CultureInfo("en-US"), DateTimeStyles.None, out met)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...