日期时间解析抛出格式异常错误

时间:2013-08-28 05:59:27

标签: c# asp.net datetime

当我将系统日期格式更改为dd/mm/yyyy时,Web应用程序抛出格式错误,此处附带错误,

enter image description here

如果系统具有默认日期格式,则其工作正常。我也尝试格式化字符串,但它也没有用。请帮我纠正这个问题。

EDITED

以下是引发异常的代码

cmd.Parameters.Add("@createdon", SqlDbType.DateTime).Value = DateTime.Parse(createdon);

2 个答案:

答案 0 :(得分:1)

使用DateTime.Parse()时,如果您希望使用运行程序的文化以外的格式来解析日期,则需要指定IFormatProvider作为第二个参数,以指定您期望的传入日期格式

示例:

cmd.Parameters.Add("@createdon", SqlDbType.DateTime).Value
   = DateTime.Parse(createdon, new CultureInfo("en-US", true));

这将以dd/MM/yyyy格式解析日期,这是美国的默认格式。

答案 1 :(得分:0)

通过将代码更正为

来解决问题
cmd.Parameters.Add("@createdon", SqlDbType.DateTime).Value = DateTime.ParseExact(createdon, "MM/dd/yyyy", CultureInfo.InvariantCulture);

所以它可以处理任何系统日期时间设置,谢谢大家。