DateTime.ParseExact() 不了解 24 小时时间值?
Posted
技术标签:
【中文标题】DateTime.ParseExact() 不了解 24 小时时间值?【英文标题】:DateTime.ParseExact() does not grok 24-hour time values? 【发布时间】:2012-06-29 05:59:31 【问题描述】:这行代码:
DateTime dt = DateTime.ParseExact(time, "hh:mm", CultureInfo.InvariantCulture);
解析“12:45”的“时间”值就好了,但会抛出“13:00”的异常
我应该使用其他 CultureInfo 值,还是需要在大于 12 的小时值上附加一个“pm”,或者...?
错误消息是:System.FormatException 未处理 Message=String 未被识别为有效的 DateTime。
【问题讨论】:
使用 "HH:mm" 解析 24 小时格式。 +1 用于在 SO 问题中使用术语“grok” 【参考方案1】:“hh”是 12 小时制格式(01 到 12)。您需要使用“HH”来表示 24 小时制。
DateTime dt = DateTime.ParseExact(time, "HH:mm", CultureInfo.InvariantCulture);
【讨论】:
【参考方案2】:试试这个:
DateTime dt = DateTime.ParseExact(time, "u", CultureInfo.InvariantCulture);
"u"
表示通用可排序格式。
【讨论】:
【参考方案3】:虽然 Hans 已经在评论部分回答了您的问题,但 Here 是一个 MSDN 链接,描述了与 DateTime.ParseExact
方法一起使用的各种日期格式。
【讨论】:
以上是关于DateTime.ParseExact() 不了解 24 小时时间值?的主要内容,如果未能解决你的问题,请参考以下文章
泰国/佛教时代时间的 DateTime.ParseExact 问题
c# datetime.parseexact 字符串未被识别为有效的日期时间 [重复]
csharp 用法DateTime.Parse DateTime.ParseExact。今更だけど,稀に迷う时があるのでメモ。