2012-04-12 153 views
-2

//錯誤字符串日期C#datetime.tryparse可以處理錯誤日期

string s = "2012-4-5-02"; 
DateTime dt; 
if (DateTime.TryParse(s,out dt)) 
    MessageBox.Show(dt.ToString("yyyy-MM-dd")); 
else 
    MessageBox.Show("error date"); 

//輸出:2012-04-05 //爲什麼它可以輸出良好的日期格式?不是顯示「錯誤日期」。

+0

我不認識那個日期格式。 4,5和02是什麼意思? – 2012-04-12 16:41:38

回答

9

TryParseParse比較寬鬆 - 比我個人傾向於喜歡的寬鬆。

如果您想要更嚴格的解析過程,請使用DateTime.TryParseExact

+0

var formats = new [] {「yyyy-MM-dd」,「yyyy-MM-dd HH:mm:ss」,「yyyy -M-d」,「yyyy-M-d HH:mm:ss」,}; DateTime dt; if(DateTime.TryParseExact(s,formats,CultureInfo.InvariantCulture,DateTimeStyles.None,out dt))MessageBox.Show(dt.ToString(「yyyy-MM-dd HH:mm:ss」)); else MessageBox.Show(「Error date!」); – flyingnn 2012-04-12 16:51:10

+0

更改爲此,很好! – flyingnn 2012-04-12 16:53:15

4

如果你希望它失敗傳遞一個明確的日期格式TryParseExact,否則DateTime將在你的日期可能意味着最好的猜測,並吐出這一點。

+2

您無法指定TryParse格式 - 僅格式提供程序,這是不完全相同的事情。 – 2012-04-12 15:59:56