2

我正在比较 2 个日期字段以查看第一个日期字段是否小于第二个日期字段,但我收到此错误“字符串未被识别为有效日期时间”并且在此行失败

DateTime Field2 = DateTime.Parse(gr.Cells[10].Text);

这是这个日期字段在我的表中的样子:2012-11-08

DateTime Field1 = DateTime.Parse(gr.Cells[3].Text);
DateTime Field2 = DateTime.Parse(gr.Cells[10].Text);
DateTime strDate = System.DateTime.Now;
if (Field2 == null && Field1 < strDate)
4

3 回答 3

4

使用ParseExact并指定格式“yyyy-MM-dd”或“yyyy-dd-MM”

于 2012-11-12T04:02:20.530 回答
3

使用DateTime.ParseExact

var res = 
    DateTime.ParseExact("2012-11-08", "yyyy-MM-dd", 
        CultureInfo.InvariantCulture);
于 2012-11-12T04:02:04.750 回答
1

根据DateTime.Parse 上的 MSDN 条目

字符串 s 使用当前 DateTimeFormatInfo 对象中的格式信息进行解析,该对象由当前线程区域性隐式提供。

您很可能会收到错误消息,因为您当前的线程文化的日期格式与您提供的字符串的日期格式大不相同。

What you can do is to specify the format that you will be using for the date:

 DateTime.ParseExact(gr.Cells[10].Text, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
于 2012-11-12T04:06:55.237 回答