2012-01-09 118 views
3

日期時間解析工作完全是當日期格式類似於mm/dd/yyyy,但是當dateformat像dd/mm/yyyy那麼問題就發生了。我想編寫解析日期的代碼,無論使用什麼格式。日期時間解析問題c#

假設我的日期類似於「15/01/2012」或2012年5月12日,那麼我的代碼可以將其解析爲有效的日期時間。所以我該怎麼辦...我使用的代碼像

IFormatProvider culture = new System.Globalization.CultureInfo("en-US", true); 
string xxx = DateTime.ParseExact("15/12/2012", "yyyyMMdd", culture).ToString(); 

它不起作用,因爲dateformat是dd/mm/yyyy。所以告訴我,當日期格式爲dd/mm/yyyy或mm/dd/yyyy等時,但代碼可以正確解析它時,最好的解決方案。所以請指導我使用哪些代碼。謝謝

+3

如果格式在mm/dd/yyyy和dd/mm/yyyy之間變化,但未指示使用哪種格式,則表示存在問題。例如,1996年1月1日是什麼日子?你需要更多的信息才能夠選擇正確的,電腦是一個更糟糕的猜測比人類:) – 2012-01-09 07:33:27

回答

7

不能允許MM/dd/yyyy和dd/MM/yyyy格式沒有任何指示使用哪一個,或者你只是在喊壞數據。你會將「06/05/2011」解釋爲什麼? 5月6日或6月5日?

你應該要麼指定格式明確你應該使用什麼文化的默認值是(這不應該讓這兩種格式) - 但對待「13/12/2011」不同於「11/12 「2011年」只是因爲日值發生爲13是一個非常糟糕的主意,國際海事組織。

(你的示例代碼不工作的原因是,你說,明確你希望它解析爲yyyyMMdd,這顯然是不"15/12/2012"格式。我不知道爲什麼你會指望該工作。)