我有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);
但是,对于时区,FormatException
,z
或zz
的任何变体都会引发zzz
例外:
字符串未被识别为有效的DateTime。
查看MSDN documentation很明显,该格式说明符期望时区采用格式为zz:zz
的格式,其中时区中有一个冒号来分隔小时和分钟。
我已经检查了Stack Overflow上的其他问题,如:
并且他们都没有真正帮助。
我可以使用的时区说明符能正确解析这种格式吗?
答案 0 :(得分:2)
真的很傻。
问题是小时说明符。我用了“hh”,这是12小时的时钟。 24小时我应该使用“HH”。
请注意细微差别。
改变这一切都按预期工作。