DateTime.ParseExact返回FormatExpcetion

时间:2012-07-26 16:51:03

标签: c# .net string exception datetime

我有一个奇怪的问题:

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%的格式失败,但该例外......

任何人都知道为什么?

2 个答案:

答案 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信息