2009-06-12 46 views
3

快速問題:我試圖用以下格式解析日期到他們等效的DateTime數據類型,但由於某種原因它失敗了。DateTime.ParseExact - 失敗

字符串格式是:28 /月/ 2009:17:43:04 0000

或者:DD/MMM/YYYY:HH:MM:SS zz00

這裏的我正在使用的代碼:

Dim provider As New CultureInfo("en-US") 
Dim d As DateTime = DateTime.ParseExact(value, "dd/MMM/yyyy:hh:mm:ss zz00", provider) 

但是,這會產生FormatException。

僅供參考:我也嘗試使用InvariantCulture作爲ParseExact的提供者參數,但無濟於事。

任何指針將不勝感激;這是星期五,我的大腦已經睡着了! :)

謝謝!

回答

15

你想 「HH」(24小時制),而不是在你的格式字符串 「HH」(12小時制):

using System; 
using System.Globalization; 

public class Test 
{ 
    static void Main() 
    { 
     var provider = new CultureInfo("en-US"); 
     // Doesn't throw 
     var d = DateTime.ParseExact("28/May/2009:17:43:04 +0000", 
            "dd/MMM/yyyy:HH:mm:ss zz00", 
            provider); 
    }  
} 
+0

Arrrgh!顯然我去了FormatBlind。 :)謝謝你指出我明顯的錯誤,並恢復我以前的,快樂的,週五的感覺! – Richard 2009-06-12 14:23:24

8

hh是在12小時時鐘小時。你想要HH