26

这行代码:

DateTime dt = DateTime.ParseExact(time, "hh:mm", CultureInfo.InvariantCulture);

解析“12:45”的“时间”值就好了,但抛出“13:00”异常

我应该使用其他 CultureInfo 值,还是需要将“pm”附加到 12 以上的小时值,或者...?

错误消息是:未处理 System.FormatException Message=String 未被识别为有效的 DateTime。

4

3 回答 3

59

“hh”是 12 小时制格式(01 到 12)。您需要使用“HH”表示 24 小时制。

DateTime dt = DateTime.ParseExact(time, "HH:mm", CultureInfo.InvariantCulture);
于 2012-06-27T18:12:51.433 回答
2

尝试这个:

DateTime dt = DateTime.ParseExact(time, "u", CultureInfo.InvariantCulture);

"u"表示通用可排序格式。

于 2012-06-27T18:13:41.913 回答
2

尽管 Hans 已经在评论部分回答了您的问题,但这里是一个 MSDN 链接,描述了与方法一起使用的各种日期格式DateTime.ParseExact

于 2012-06-27T18:14:48.530 回答