2011-05-25 67 views
3

我有日期時間的字符串表示,看起來像這樣:DateTime.ParseExact字符串格式不斷拋出錯誤

2011-05-25T16:42:17.156Z 

我都試過,沒有任何運氣如下:

DateTime.ParseExact(formatted, "yyyy-MM-ddThh:mm:ss.fffZ", CultureInfo.CurrentCulture); 
DateTime.ParseExact(formatted, "yyyy-MM-dd hh:mm:ss.fff", CultureInfo.CurrentCulture); 
DateTime.ParseExact(formatted, CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns(), CultureInfo.CurrentCulture, DateTimeStyles.AssumeUniversal); 
DateTime.ParseExact(formatted, CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns(), CultureInfo.CurrentCulture, DateTimeStyles.None); 

所有這些給錯誤:

String was not recognized as a valid DateTime. 

標準DateTime.Parse似乎工作,雖然對於性能reas我們正在探索ParseExact。這似乎應該是非常簡單的,但似乎無法讓它工作。

回答

6

使用HH而不是hh作爲24小時格式。這應該工作:

DateTime.ParseExact(formatted, "yyyy-MM-ddTHH:mm:ss.fffZ", 
        CultureInfo.CurrentCulture); 

確定要使用當前的文化,而不是不變的文化有關係嗎?

+0

+1我也遇到過這個問題:P – 2011-05-25 16:53:43

+0

我剛剛得出同樣的結論,並已經測試過。用'HH'它工作正常。 – Guffa 2011-05-25 16:55:44

+0

謝謝你,這個伎倆。爲什麼要選擇不變的文化而不是現在的文化?或相反亦然? – CoolUserName 2011-05-25 17:03:13