2011-12-20 36 views
1

的我有一個包含一個datetime和看起來像這樣解析機制值的JSON字符串:datetime.TryParseExact不同格式的值

if (DateTime.TryParseExact(TheUserTimeString, "M.d.yyyy.HH.mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out TheUserTime)) 
{ 
    TheObject.UserDateTime = TheUserTime; 
} 

字符串TheUserTimeString客戶端上產生的。它可以是12.20.2011.13.21和代碼工作正常,但當它是12.20.2011.13.2代碼中斷,因爲分鐘是在一個數字。而當這個月也在一個數字......誰知道。

什麼是重寫此分析代碼的更好方法,以便每次都能正確解析字符串。

感謝您的建議。

+0

你可以改變Mdyyy.HH.m「是一個string.format和這種方式..?或者可能添加MM.dd否則聽起來像你將不得不做一個檢查,如果分鐘在長期是<2 1-9應該失敗......這是一個正確的假設 – MethodMan 2011-12-20 18:17:02

回答

3

使用字符串"M.d.yyyy.HH.m",單個m表示沒有前導0的分鐘。Source

+0

好吧,這也適用於兩個數字格式的值,如12月12日? – frenchie 2011-12-20 18:22:14

+0

是的,兩種情況下(一位數和兩位數分鐘)將工作,所以將月份數。 – wsanville 2011-12-20 18:29:40

+0

好吧,偉大的提示;感謝您的答案 – frenchie 2011-12-20 18:35:40

1

您的DateTime格式字符串只需要是:"M.d.yyyy.H.m"
這允許將月,日,小時和分鐘表示爲單個數字值。

請參閱here for the MSDN page記錄此字符串的有效格式以獲取更多信息。