Как мне преобразовать эту дату в действительный объект даты? - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь преобразовать строковые даты, такие как 2020-01-14T17:01:48.757Z и 2020-01-14T17:01:50.760Z, в C# DateTime. Похоже, мой анализ где-то не удается.

DateTimeOffset.ParseExact("2020-01-14T17:01:48.757Z", "yyyy-MM-dd'T'HH:mm:sszzz", CultureInfo.InvariantCulture).DateTime;

Что не так с кодом выше? Сбой с

Строка '2020-01-14T17: 01: 50.760Z' не была распознана как действительный DateTime.

Когда я анализирую ту же дату онлайн https://nsdateformatter.com/ Нет проблем.

Я даже пытался использовать yyyy-MM-dd'T'HH:mm:ssZ, но также выдает ошибку выше.

Ответы [ 2 ]

1 голос
/ 21 января 2020

Используйте этот формат даты:

DateTimeOffset.ParseExact("2020-01-14T17:01:48.757Z", "yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture).DateTime;

2020-01-14T17:01:48.757Z

yyyy-MM-ddTHH:mm:ss.fffZ

Как вы видите, формат соответствует предоставленной вами строке даты.

0 голосов
/ 21 января 2020

Похоже, вы забыли использовать правильный спецификатор формата для вашей части в миллисекундах и точку (.) между вашими секундами и частями в миллисекундах.

Пользовательский "fff" спецификатор формата

Спецификатор пользовательского формата "fff" представляет три старшие цифры доли секунды ; то есть он представляет миллисекунды в значении даты и времени.

DateTimeOffset.ParseExact("2020-01-14T17:01:48.757Z", 
                          "yyyy-MM-dd'T'HH:mm:ss.fffZ",
                           CultureInfo.InvariantCulture)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...