一个DateTime解析正常,但另一个不解析?

时间:2016-03-10 08:59:44

标签: c# asp.net datetime

我有一个ASP网站,我从两个字段中读取了两个日期。

使用JavaScript生成日期,我需要读取的两个日期之一通过,但另一个不通过。尽管它们的制作完全相同。

正如你从我的立即窗口看到的那样:

datepicker_start.Value
"03/10/2016"

datepicker_end.Value
"03/23/2016"

第一个解析正常,第二个不解析:

DateTime start = DateTime.Parse(datepicker_start.Value);
DateTime end = DateTime.Parse(datepicker_end.Value);

它在结束日期抛出FormatException:

DateTime.Parse(datepicker_end.Value)

抛出类型

的例外
  

System.FormatException:String未被识别为有效   日期时间。

我无法理解为什么会这样。如果你需要的东西不是我已经提供的东西,请告诉我,因为这真的令人费解。

1 个答案:

答案 0 :(得分:3)

DateTime.Parse使用当前文化设置的标准日期和时间格式。

可能您的文化设置标dd/MM/yyyy为标准格式,因为没有第23个月,您的第二行会抛出FormatException

我建议使用DateTime.ParseExact自定义格式,如;

DateTime end = DateTime.ParseExact(datepicker_end.Value,
                                   "MM/dd/yyyy",
                                   CultureInfo.InvariantCulture);

例如;如果您调试代码,则start将是10月3日,而不是3月10日。