MM
format specifier является 2
цифры месяца число от 01
до 12
.
Вместо этого сокращенное название месяца необходимо использовать MMM
format specifier.
И для вашей части +0200
вам необходимо использовать K
format specifier с информацией о часовом поясе, а не zzzzz
.
И вам нужно использовать одинарные кавычки для вашей GMT
как 'GMT'
, чтобы указать его как литеральный разделитель строк.
string s = "Wed Oct 01 2014 00:00:00 GMT+0200";
DateTime dt;
if(DateTime.TryParseExact(s, "ddd MMM dd yyyy HH:mm:ss 'GMT'K",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
Console.WriteLine(dt);
}
Любой z
format specifier не рекомендуется с DateTime
разборе. Поскольку они представляют signed offset местного значения UTC местного времени, и этот спецификатор не влияет DateTime.Kind
property. И DateTime
не сохраняет значение смещения.
Именно поэтому этот спецификатор подходит вместо DateTimeOffset
.