解析格式奇怪的DateTime。 有人喜欢加紧吗?

我正在尝试解析一个日期戳(我从Twitter获得),但我收到了错误。 这是日期戳:

2010年8月27日星期五22:00:07 +0000

这是我的代码:

DateTime.ParseExact(MyDateValue,“ddd,dd MMM YYYY HH:mm:ss + ffff”,new CultureInfo(“en-US”))

这是我的错误:

System.FormatException未处理Message = String未被识别为有效的DateTime。

有人喜欢这样吗? 为了方便起见,我已经为显示问题的控制台应用程序提供了以下代码。

谢谢杰米

using System; using System.Globalization; class Program { static void Main(string[] args) { string MyDateValue = "Fri, 27 Aug 2010 22:00:07 +0000"; var dt = DateTime.ParseExact(MyDateValue, "ddd, dd MMM YYYY HH:mm:ss +ffff", new CultureInfo("en-US")); } } 

年份说明符是yyyy ,而不是YYYY

 string MyDateValue = "Fri, 27 Aug 2010 22:00:07 +0000"; var dt = DateTime.ParseExact(MyDateValue, "ddd, dd MMM yyyy HH:mm:ss +ffff", new CultureInfo("en-US")); 

以上工作正常,只要它不会抛出exception。

我假设字符串末尾的+0000应该是一个时区说明符。 如果是这样, ffff是不正确的,因为它代表The hundred thousandths of a second ,而不是时区说明符,即K 如果它确实应该是时区说明符,那么这将是正确的代码:

 string MyDateValue = "Fri, 27 Aug 2010 22:00:07 +0000"; var dt = DateTime.ParseExact(MyDateValue, "ddd, dd MMM yyyy HH:mm:ss K", new CultureInfo("en-US")); 

请参阅Custom Date and Time Format Strings

你的YYYY应该是yyyy吗?

我的DateTime自定义格式信息的帮助文件只有小写y,没有大写。

注意年份的变化:YYYY-> yyyy

 DateTime.ParseExact(MyDateValue, "ddd, dd MMM yyyy HH:mm:ss +ffff", new CultureInfo("en-US")) 
 System.DateTime.ParseExact(MyDateValue, "ddd, dd MMM yyyy HH:mm:ss zzz", new System.Globalization.CultureInfo("en-US")); 

年份部分需要小写: ddd, dd MMM yyyy HH:mm:ss +ffff

我删掉了“+0000”并且只使用了DateTime.Parse()

为了达到我的实际时区(因为+0000可能是GMT的偏移)我也设置了它。

 string myDateValue = "Fri, 27 Aug 2010 22:00:07"; //get this using substring int gmtOffset = -6; //I'm in the Central TimeZone DateTime dt = DateTime.Parse(myDateValue); dt.AddHours(gmtOffset); Console.WriteLine(dt.ToString("ddd, dd MMM yyyy hh:mm:ss"));