无法解析字符串中的缩写日期名称

时间:2019-05-25 04:00:01

标签: c# .net datetime

我正在尝试使用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

我不确定我在做什么错。任何帮助将不胜感激。

编辑:改进了输出和程序语法

1 个答案:

答案 0 :(得分:3)

您的问题是2019年4月21日是星期日而不是星期三。 "Sun, 21 Apr 2019 07:28:45 GMT"

正常工作
相关问题