c# - 日期时间解析问题 c#

标签 c#

当日期格式类似于 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/

相关文章:

c# - 在 TextBox 中将特定文本设为粗体

c# - 使用多列过滤 DataView

c# - 与数据库无关的 ASP.Net?

c# - 在已编译查询中重用现有的 linq 表达式

c# - 使用 DataContractJsonSerializer 序列化复杂字典

c# - 为 Razor 页面创建别名

c# 列表查找重复更新多个列表

c# - 如何在C#中获取unix时间戳

c# - 如何在 C# 中编码(marshal) C++ 枚举

c# - 为 HTTP 监听器设置 'Access-Control-Allow-Origin'