Как анализировать и генерировать объекты DateTime в формате ISO 8601
Существует этот веб-сервис SOAP, который отправляет мне объекты даты и времени в следующем формате.
2016-03-29T12:20:35.093-05:00
Это 29 марта 2016 года. Час: 12: 20: 35.093 (GMT-5).
Я хочу быть в состоянии создатьDateTime
объект, как это:
DateTime.Now
и получите строковое представление в формате, описанном выше, а также обратную операцию, создайте DateTime из строки, подобной приведенной выше.
Я попробовал следующее, чтобы создать дату:
new DateTime(2016, 3, 29, 12, 20, 35, 093, DateTimeKind.Utc)
Тем не менее, я не могу не видеть, как указать там GMT-5 ...
Я не знаю, как преобразовать DateTime в указанный формат строки, либо.
Используя код Нейта, я делаю следующее:
var d = new DateTimeOffset(2016, 3, 29, 12, 20, 35, 93, TimeSpan.FromHours(-3));
FormatIso8601(d)
Однако этот вызов возвращается: «2016-03-29T15: 20: 35Z» вместо:
"2016-03-29T12:20:35.093-03:00"
что мне действительно нужно
Я думаю, что это работает:
d.ToString("yyyy-MM-ddTHH:mm:ss.fffzzz")