2012-11-25 33 views
4

我試圖使用M/d/yyyy H:m:s a模式解析4/27/2011 12:00:00 AM模式,不變的文化和默認選項,但它不解析。DateTime.TryParseExact返回false

如果有人能幫助我意識到出了什麼問題,我將非常感激。

+3

將來,如果您將包含一個簡短但完整的程序來展示問題,那將會很有幫助。 –

回答

10

你的模式不包括tt,這是AM/PM指示和在你輸入文本。此外,您希望h用於12小時制時鐘,而不是24用於24小時制時鐘,並且看起來您總是有兩位數的分鐘和秒鐘,所以您可能只需要一個M/d/yyyy h:mm:ss tt的模式。

示例代碼其中工程:

using System; 
using System.Globalization; 

class Test 
{ 
    static void Main() 
    { 
     DateTime value; 
     if (DateTime.TryParseExact("4/27/2011 12:00:00 AM", 
            "M/d/yyyy h:mm:ss tt", 
            CultureInfo.InvariantCulture, 
            DateTimeStyles.None, 
            out value)) 
     { 
      Console.WriteLine(value); 
     } 
    } 
} 

參見MSDN上custom date and time format strings更多信息。

+1

感謝tt,我讀過'a'是AM/PM的代號。但它仍然不想用H標誌符解析這個日期數小時。爲什麼? –

+0

@ lua.rasta:你有12個,這意味着當被解析爲24小時小時數時,它會是* PM * ...但你也有AM。這就是爲什麼我的示例代碼使用'h'而不是... –

+0

非常感謝! –

5

的模式是不正確的 - 沒有a格式說明 - 它應該是tt