Parse String DateTime, содержащий информацию о часовых поясах - PullRequest
3 голосов
/ 06 января 2012

Я пытаюсь преобразовать строковое значение в значение даты и времени, но получаю ошибку System.FormatException. Это связано с информацией о часовом поясе, которая является частью строки даты. Есть ли способ, который сможет обработать это преобразование?

string date = "Wed, 04 Jan 2012 20:18:00 EST";
DateTime dt = Convert.ToDateTime(date);
Console.WriteLine(dt.ToString());

1 Ответ

5 голосов
/ 06 января 2012

Я не верю, что есть какая-либо пользовательская строка формата даты и времени , которая будет анализировать или форматировать сокращение часового пояса.Вам придется удалить его, проанализировать локальную часть, определить, какой часовой пояс подразумевается под аббревиатурой (удачи - они неоднозначные), а затем применить этот часовой пояс к местному времени, чтобы получить значение UTC.(опять же, это может быть неоднозначно).

Если вы вообще управляете форматом, я постараюсь избегать включения информации о часовом поясе, если это возможно, или включения смещения а не часовой пояс, если это все, что важно (смещение не дает той же информации, конечно), или однозначный идентификатор часового пояса, если вам действительно нужен часовой пояс.Обратите внимание, что .NET использует идентификаторы часовых поясов системы Windows;мой собственный проект Noda Time использует более распространенные идентификаторы Olson / zoneinfo / tz , если это вам полезно.

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