我有一个奇怪的问题:
string format = @"ddd MMM dd hh:mm:ss \G\M\Tzzz yyyy";
__timestamp = "Fri Apr 09 17:02:00 GMT-0500 2010";
DateTime.ParseExact(__timestamp, format, new CultureInfo("en"));
返回FormatException
= “字符串未被识别为有效的日期时间。”
但该代码没有例外:
string format = @"ddd MMM dd hh:mm:ss \G\M\Tzzz yyyy";
__timestamp = "Sat Apr 10 01:27:00 GMT-0500 2010";
DateTime.ParseExact(__timestamp, format, new CultureInfo("en"));
从30k的日期解析该格式开始,大约50%的格式失败,但该例外......
任何人都知道为什么?
答案 0 :(得分:10)
它应该是HH
而不是hh
。你是24小时格式。
ddd MMM dd HH:mm:ss \G\M\Tzzz yyyy
有效:Sat Apr 10 01:27:00 GMT-0500 2010
答案 1 :(得分:2)
似乎DateTime期望该“en”格式提供程序的AM / PM信息。尝试使用小于12(包括)的任何小时,或添加一些AM / PM信息