Разбор строки для datetime: String не был распознан как действительный DateTime - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь разобрать JSON. Я получаю строковое значение, которое на самом деле datetime:

11/1/2017 12:00:40

и когда я пытаюсь разобрать его

DateTime.ParseExact("11/1/2017 12:00:40 AM", "MM/DD/YYYY HH:MI:SS AM", CultureInfo.InvariantCulture)

Я получаю следующую ошибку:

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

Что не так?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Ваша строка формата не соответствует вашим данным и в любом случае не подходит для .NET. Разные языки / платформы используют разные строки формата - всегда проверяйте документы на тот, который вы используете. Вот ваша строка формата:

"MM/DD/YYYY HH:MI:SS AM"

Вам необходимо прочитать документацию для пользовательских строк формата даты и времени . В вашем случае:

  • MM означает двузначные месяцы; неясно, будете ли вы на самом деле иметь их, учитывая, что у вас нет двухзначных дней
  • DD не имеет никакого значения; Вы имели в виду dd, но это не должно совпадать, так как ваш день кажется однозначным
  • YYYY не имеет никакого значения; Вы имели в виду yyyy
  • HH - 24 часа; Вы имели в виду hh
  • MI - однозначный месяц, за которым следует I; Вы имели в виду mm за минуты
  • SS не имеет никакого значения; Вы имели в виду ss
  • AM должно быть tt, чтобы соответствовать спецификатору формата AM / PM

Так что я думаю, что вы хотите, чтобы ваша строка формата была

"M/d/yyyy hh:mm:ss tt"
0 голосов
/ 27 апреля 2018

Repalce

"MM/DD/YYYY HH:MI:SS AM"

с

"MM/d/yyyy hh:mm:ss tt"

  • MM для двухзначного месяца или M для одной цифры - не уверен относительно вашего ввода
  • d 1 цифра дня
  • yyyy 4-значный год
  • hh 12-часовой формат
  • mm минут
  • ss секунд
  • tt AM / PM

Источник

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