Я пытаюсь проанализировать дату в моей строке, используя DateTime.TryParseExact. Строка выглядит так:
Wed, 21 Apr 2019 07:28:45 GMT
Однако функция синтаксического анализа всегда дает сбой, когда я использую спецификатор формата ddd . Если я удаляю 'Wed'
из строки, а часть 'ddd'
из строки формата, он просто анализируется.
Вот немного кода, который воспроизводит проблему
var ci = CultureInfo.CreateSpecificCulture("en-GB");
var datesToParse = new[] { "Wed, 21 Apr 2019 07:28:45 GMT", "21 Apr 2019 07:28:45 GMT" };
var formats = new[] { "ddd, dd MMM yyyy HH:mm:ss 'GMT'", "dd MMM yyyy HH:mm:ss 'GMT'" };
foreach (var dateToParse in datesToParse)
{
var result = DateTime.TryParseExact(dateToParse, formats, ci, DateTimeStyles.AllowWhiteSpaces, out DateTime parsedDate)
? parsedDate.ToLongDateString()
: $"Unable to parse date: {dateToParse}";
Console.WriteLine(result);
}
Console.ReadLine();
И вывод:
Unable to parse date: Wed, 21 Apr 2019 07:28:45 GMT
21 April 2019
Я не совсем уверен, что я здесь делаю неправильно. Любая помощь будет оценена.
edit: улучшен вывод и программный синтаксис