我有一个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未被识别为有效 日期时间。
我无法理解为什么会这样。如果你需要的东西不是我已经提供的东西,请告诉我,因为这真的令人费解。
答案 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日。