Почему DateTime.ParseExact не обрабатывает формат UTC с завершающим Z?

Другая проблема с ParseExact. Я пытаюсь проанализировать строку в формате UTC в формате datetime в формате:

"YYYY-MM-DDThh:mm:ss.ssZ"

который находится в формате UTC, с конечным Z. Я не могу его точно разобрать по какой-то причине. Я пробовал строки "u", "s", "o", а также несколько DateTimeStyles и хорошо написано. Культура является инвариантной.

По какой-то причине ему не нравится Z, что указывает на его строку UTC. Когда я его удаляю, разбирает. Я с удовольствием, с некоторым удовлетворением, избавлюсь от конечного Z, поскольку я знаю, что это строки времени UTC, но я не могу. Любые идеи?

Ответ 1

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

DateTime.ParseExact("2011-03-02T20:15:19.64Z", "yyyy-MM-ddTHH:mm:ss.ffK", null).ToUniversalTime()

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