Я вижу 2 вещи;
- Вы должны использовать
d
спецификатор вместо dd
, поскольку ваш однобитный номер дня имеет значение не иметь начальный ноль . - Нет
zzzz
в качестве спецификатора пользовательского формата.Вместо этого вы должны использовать zzz
спецификатор .
DateTime.ParseExact("Wed, 6 Mar 2019 14:39:49 +0300",
new string[] { "ddd, d MMM yyyy HH:mm:ss zzz" },
CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);
Но, честно говоря, если ваши строки имеют смещение UTC *Значение 1026 *, я бы посоветовал разобрать его на DateTimeOffset
, поскольку экземпляр DateTime
не имеет смещенной части, и использование спецификаторов zzz
не рекомендуется, как указано в MSDN.
При значениях DateTime
спецификатор пользовательского формата zzz представляет смещение часового пояса локальной операционной системы от UTC со знаком, измеренное в часах и минутах.Он не отражает значение свойства DateTime.Kind
экземпляра. По этой причине спецификатор формата "zzz" не рекомендуется использовать со значениями DateTime.
Для анализа DateTimeOffset
,
DateTimeOffset.ParseExact("Wed, 6 Mar 2019 14:39:49 +0300",
new string[] { "ddd, d MMM yyyy HH:mm:ss zzz" },
CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);
СейчасВы можете использовать его .DateTime
и / или .Offset
свойства отдельно, если хотите.