4

我有一个奇怪的问题:

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% 的日期解析失败,但有该异常......

有谁知道为什么?

4

2 回答 2

10

应该HH不是hh。你是 24 小时制的。

ddd MMM dd HH:mm:ss \G\M\Tzzz yyyy

有效的:Sat Apr 10 01:27:00 GMT-0500 2010

于 2012-07-26T16:55:28.363 回答
2

似乎 DateTime 期待该“en”格式提供程序的 AM/PM 信息。尝试任何少于 12 小时(含)的时间,或添加一些 AM/PM 信息

于 2012-07-26T17:03:38.667 回答