2010-06-15 60 views
1
string strdate="15/06/2010"; 

DateTime dt = 
    DateTime.Parse(strdate, 
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat); 

我無法獲得日期時間值爲dd/mm/yyyy。 它給予例外'字符串不被識別爲有效的日期時間'將字符串轉換爲有效的日期時間

oly如果它是在06/15/2010這是工作。如何在dt中獲得相同的格式。

+0

可能會更好,如果你提到的語言...... – xenoterracide 2010-06-15 10:21:52

回答

4

那麼,大概你的線程的當前文化預計MM/dd/yyyy。如果你想使用dd/MM/yyyy,那麼你應該明確指定。我個人更喜歡ParseExact而不是Parse,因爲這樣可以提供更多的控制。我會使用類似:

DateTime dt = DateTime.ParseExact(strdate, "dd/MM/yyyy", 
    CultureInfo.InvariantCulture); 

需要注意的是,如果這是用戶輸入,您可能需要使用TryParseExact代替。

0

您目前正在使用目前的文化,這似乎是爲美國風格的日期格式設置的。試試這個:

DateTime.Parse(strdate, System.Globalization.CultureInfo.CreateSpecificCulture("en-GB")); 

這告訴函數使用英國日期樣式格式的工作。您可能希望將en-GB更改爲您的日期所處的文化。如果您有許多文化很重要的調用,則可能需要爲整個線程設置它,而不是通過調用進行調用。

相關問題