C # формат даты и времени и информация о часовом поясе - PullRequest
1 голос
/ 12 октября 2011

Я получаю строки в виде:

"2011-10-12T11: 55: 34.803EST"

"2011-10-05T16: 58: 05.043GMT"

Я хотел бы сохранить эти значения как объекты DateTime, но простой DateTime.Parse () не работает. В любом случае я могу преобразовать эти строки в объекты DateTime? Насколько я могу судить, DateTime не знает о часовых поясах.

Ответы [ 2 ]

1 голос
/ 12 октября 2011

Вы можете заменить GMT на z, и оно будет работать:

string date = "2011-10-05T16:58:05.043GMT".Replace("GMT", "z");
Console.WriteLine(DateTime.Parse(date));

Время Зулу

0 голосов
/ 12 октября 2011

+ 1 для IAbstractDownvoteFactor - Z - лучшая зона.

Ваше время даты выглядит почти как Iso8601, но с пользовательскими часовыми поясами (http://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators для начальной информации).

Работа с часовыми поясами очень сложна, поскольку правила для них могут измениться, а некоторые могут появиться и исчезнуть. Если вы можете повлиять на входящий формат - попросите UTC (Z) или абсолютное смещение (+08: 00) в часовых поясах.

В противном случае вам нужно выяснить, какой часовой пояс вам нужно поддерживать, выяснить, были ли когда-либо изменены правила и правильно ли установлены зоны перехода на летнее время (т. Е. Используются PDT / PST при необходимости). Веселитесь.

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