我試圖以下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