Итак, я получил эту строку даты и времени, которую я получаю из внешнего API, "2014-08-28T11:00:00:000-0400".

Но я не могу разобрать его в обычный объект DateTime на С#, я знаю, что последняя часть строки имеет какое-то отношение к смещению часового пояса или что-то в этом роде, но я не знаю, что делать, чтобы его проанализировать .

Что я пробовал на данный момент:

DateTime.Parse("2019-11-13T05:20:14:311-0700")
DateTime.Parse("2019-11-13T05:20:14:311-0700", new System.Globalization.CultureInfo("en-GB"))
DateTime.Parse("2019-11-13T05:20:14:311-0700", new System.Globalization.CultureInfo("en-US"))
DateTimeOffset.Parse("2019-11-13T05:20:14:311-0700")

Целая куча других вещей, где я передал в различных строках формата, таких как "yyyy-MM-dd:HH:mm:ss", но это тоже не приносит никакой пользы.

Пожалуйста, если кто-то может мне помочь, вы получите виртуальную куки!

0
mpma 13 Ноя 2019 в 16:36
3
Пожалуйста, покажите нам, что вы уже сделали.
 – 
Vroomfondel
13 Ноя 2019 в 16:38
1
Отвечает ли это на ваш вопрос? Строка C# для DateTime с часовым поясом
 – 
Mahesh Waghmare
13 Ноя 2019 в 16:39
 – 
Rand Random
13 Ноя 2019 в 16:39
Я обновил сообщение с тем, что я пробовал до сих пор
 – 
mpma
13 Ноя 2019 в 16:43
Это тоже не приносит мне никакой пользы, поскольку моя строка даты и времени не выглядит так: 2012-04-20T10:10:00+0200 обратите внимание на лишнее «000», которое у меня есть перед «0400»
 – 
mpma
13 Ноя 2019 в 16:45

1 ответ

Строка формата, которую вы хотите использовать, либо

yyyy-MM-dd'T'HH:mm:ss:fffzzz

Или

yyyy-MM-dd'T'HH:mm:ss:fffK

Дополнительную информацию о zzz можно найти по адресу здесь или для K здесь

Вы можете использовать приведенную выше строку формата либо с DateTime.ParseExact, либо с DateTimeOffset.ParseExact в зависимости от того, чего вы пытаетесь достичь.

Живой пример: https://rextester.com/DTNT63275

2
Jamiec 13 Ноя 2019 в 16:49