如何在.NET中解析RFC822日期?

时间:2013-06-21 11:32:54

标签: c# .net parsing datetime

我有Twitter API返回给我的以下日期时间字符串:

  

“Thu Apr 26 11:38:36 +0000 2012”

我需要将其转换为DateTime对象,因此我使用自定义格式说明符调用ParseExact

CultureInfo provider = CultureInfo.InvariantCulture;
DateTime publishDate = DateTime.ParseExact(tweet["created_at"].ToString(), "ddd MMM dd hh:mm:ss zzz yyyy", provider);

但是,对于时区,FormatExceptionzzz的任何变体都会引发zzz例外:

  

字符串未被识别为有效的DateTime。

查看MSDN documentation很明显,该格式说明符期望时区采用格式为zz:zz的格式,其中时区中有一个冒号来分隔小时和分钟。

我已经检查了Stack Overflow上的其他问题,如:

并且他们都没有真正帮助。

我可以使用的时区说明符能正确解析这种格式吗?

1 个答案:

答案 0 :(得分:2)

真的很傻。

问题是小时说明符。我用了“hh”,这是12小时的时钟。 24小时我应该使用“HH”。

请注意细微差别。

改变这一切都按预期工作。