C# Datetime格式问题:如何将Datetime转换为4位数的天或月

C# Datetime格式问题:如何将Datetime转换为4位数的天或月,c#,xml,wpf,datetime,C#,Xml,Wpf,Datetime,我正在尝试从播客XML解析日期时间数据。 基本上,它包含http头格式 (Format-A) Fri, 28 Aug 2015 00:00:00 EST 但是,有时它的格式不同,有4位数的日和月,如下所示 (Format-B) Thur, 30 July 2015 00:00:00 EST 我不知道为什么播客同时提供两种不同的格式。 我想我可以简单地解析这个网站提到的格式。 但是它不能只使用DateTime.Parse()方法 所以我写了这段代码 try { dtPubDate =

我正在尝试从播客XML解析日期时间数据。
基本上,它包含http头格式

(Format-A) Fri, 28 Aug 2015 00:00:00 EST
但是,有时它的格式不同,有4位数的日和月,如下所示

(Format-B) Thur, 30 July 2015 00:00:00 EST
我不知道为什么播客同时提供两种不同的格式。
我想我可以简单地解析这个网站提到的格式。

但是它不能只使用DateTime.Parse()方法
所以我写了这段代码

try
{
    dtPubDate = DateTime.ParseExact(strhttpTime,
    "ddd, dd MMM yyyy HH:mm:ss 'EST'",
    CultureInfo.InvariantCulture.DateTimeFormat,
    DateTimeStyles.AssumeUniversal);
}
catch (FormatException)
{
     dtPubDate = DateTime.ParseExact(strhttpTime,
     "dddd, dd MMMM yyyy HH:mm:ss 'EST'",
     CultureInfo.InvariantCulture.DateTimeFormat,
     DateTimeStyles.AssumeUniversal);
}
在我编写这段代码时,如果第一种格式不起作用,请尝试第二种格式。
但它仍然得到了Format-B的例外。 这个URL就是我遇到的问题。
如您所见,有两种不同的格式带有pubDate标记。

我遗漏了什么?

格式字符串
dddd
将与全天名称匹配,例如“星期四”,而不是4个字符

发件人:

“dddd”自定义格式说明符(加上任意数量的附加“d”说明符)表示一周中某一天的全名。从当前区域性或指定区域性的DateTimeFormatInfo.DayNames属性检索一周中某一天的本地化名称

你可以删掉逗号之前的所有内容,然后解析它

var tidyDate = strhttpTime.Split(',')[1].Trim();

dtPubDate = DateTime.ParseExact(
    tidyDate,
    "ddd, dd MMM yyyy HH:mm:ss 'EST'",
    CultureInfo.InvariantCulture.DateTimeFormat,
    DateTimeStyles.AssumeUniversal);