我正在尝试使用DateTime.TryParseExact解析字符串中的日期。字符串如下所示:
Wed, 21 Apr 2019 07:28:45 GMT
但是,当我使用ddd format specifier时,解析功能总是失败。如果我从字符串中删除'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
我不确定我在做什么错。任何帮助将不胜感激。
编辑:改进了输出和程序语法
答案 0 :(得分:3)
您的问题是2019年4月21日是星期日而不是星期三。 "Sun, 21 Apr 2019 07:28:45 GMT"