2012-01-09 146 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"格式。我不知道为什么你会指望该工作。)