我试图以下String
解析为DateTime
对象在C#:DateTime.ParseExact根本不工作,为什么?
DateTime.ParseExact("20101108 230125", "yyyyMMdd hhmmss", null)
虽然值看起来是正确的ParseExact
方法只是不断给我下面的:
字符串未被识别为一个有效的DateTime。
有人可以告诉我为什么以及如何解析上面的字符串,而不必手动的方式吗?是不是ParseExact
应该是为了这种场合?
我试图以下String
解析为DateTime
对象在C#:DateTime.ParseExact根本不工作,为什么?
DateTime.ParseExact("20101108 230125", "yyyyMMdd hhmmss", null)
虽然值看起来是正确的ParseExact
方法只是不断给我下面的:
字符串未被识别为一个有效的DateTime。
有人可以告诉我为什么以及如何解析上面的字符串,而不必手动的方式吗?是不是ParseExact
应该是为了这种场合?
你有几个小时错格式,应该全部是大写:
DateTime.ParseExact("20101108 230125","yyyyMMdd HHmmss", null)
小写hh
指定时间采用12小时制(含AM/PM)。大写HH
是24小时制时间。请致电documentation of custom DateTime format strings。
尝试使用:
var dt = DateTime.ParseExact("20101108 230125", "yyyyMMdd HHmmss", null)
的 “HH” 是12小时时间和 “HH” 24小时。
哎呀刚刚看到Fredrik的回答... – 2010-11-16 09:05:37
为什么会造成异常?就我个人而言,我希望将23转换为11而不是抛出异常。它是ParseExact导致它吗? – 2010-11-16 09:48:14
@Marcus:'ParseExact'会做它说的;使用指定的* exact *格式解析字符串。由于'hh'告诉它希望在那个位置有一个12小时的时间值,'23'显然不在可接受值的范围内。它解析确切的字符串,不进行转换。所以是的,这个异常是由'ParseExact'方法抛出的。 – 2010-11-16 10:01:47
干杯的扩展解释。 :) – 2010-11-16 10:13:09