当日期格式类似于 mm/dd/yyyy 时,日期时间解析工作正常,但当日期格式类似于 dd/mm/yyyy 时,就会出现问题。无论使用何种格式,我都想编写代码来解析日期。
假设如果我的日期类似于“15/01/2012”或 05/12/2012,那么我的代码可以将其解析为有效的日期时间。那我该怎么办...我使用类似
的代码IFormatProvider culture = new System.Globalization.CultureInfo("en-US", true);
string xxx = DateTime.ParseExact("15/12/2012", "yyyyMMdd", culture).ToString();
它不起作用,因为日期格式是 dd/mm/yyyy。所以告诉我最好的解决方案,当日期格式为 dd/mm/yyyy 或 mm/dd/yyyy 等但代码可以正确解析它时。所以指导我应该使用什么代码。谢谢
最佳答案
您绝不能允许同时使用 MM/dd/yyyy 和 dd/MM/yyyy 格式,而没有任何指示使用的是哪种格式,否则您只是大声疾呼以获取错误数据。您会将“06/05/2011”解释为什么? 5 月 6 日还是 6 月 5 日?
您应该或者明确指定格式或者您应该使用任何文化默认值(这不应该允许两种格式) - 但对待“13/12/2011"与 "11/12/2011"不同只是因为日值恰好是 13 是一个非常糟糕的主意,IMO。
(您的示例代码不起作用的原因是您明确表示希望将其解析为 yyyyMMdd
,这显然不是“15/12/2012”
。我不确定为什么你会期望它起作用。)
关于c# - 日期时间解析问题 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8785152/