2012-07-03 50 views
8

我使用Datetime.TryParse方法檢查有效的日期時間。輸入日期字符串將是任何字符串數據。但作爲無效的指定日期返回false。使用DateTime.TryParse方法檢查有效日期

DateTime fromDateValue; 
if (DateTime.TryParse("15/07/2012", out fromDateValue)) 
{ 
    //do for valid date 
} 
else 
{ 
    //do for in-valid date 
} 

編輯:我錯過了。我需要檢查時間的有效日期爲「15/07/2012 12:00:00」。

任何建議,歡迎....

+4

這始終是一件危險的事情...解析依賴於用戶的文化。總是試着記住它? 「15/07/2012」在法國有效,但不在美國...... – Kek

+1

如果您使用的預計爲MM/DD/YYYY格式的區域設置,則2012年7月15日是無效日期。 – Jason

+1

@Jason你是對的,我的語言環境是MM/dd/yyyy甲酸酯。所以它是無效的。 – Sujit

回答

21

你可以使用TryParseExact方法,它允許你通過,你要支持可能的格式的集合。 TryParse方法與文化相關,因此如果您決定使用它,請非常小心。

因此,例如:

DateTime fromDateValue; 
string s = "15/07/2012"; 
var formats = new[] { "dd/MM/yyyy", "yyyy-MM-dd" }; 
if (DateTime.TryParseExact(s, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out fromDateValue)) 
{ 
    // do for valid date 
} 
else 
{ 
    // do for invalid date 
} 
0

您應該使用TryParseExact你似乎有固定的格式,你的情況。

喜歡的東西也能爲你工作

DateTime.ParseExact([yourdatehere], 
        new[] { "dd/MM/yyyy", "dd/M/yyyy" }, 
        CultureInfo.InvariantCulture, 
        DateTimeStyles.None); 
0

正如有人說,你可以使用TryParseExact

欲瞭解更多信息,並隨着時間的使用,您可以檢查MSDN Documentation

相關問題