2013-03-22 86 views
1

想知道是否有人可以告诉我为什么在这行代码(下)中,ParseExact函数返回一个看似随机的日期而不是输入字符串中的实际日期吗?DateTime.ParseExact()产生异常结果。谁能告诉我为什么?

  foreach (Car c in cars) 
     { 
      Car obj = new Car(); 
      obj.CarID = c.CarID; 
      obj.Reg = c.Reg; 
      obj.Make = c.Make; 
      obj.Model = c.Model; 
      obj.Mileage = c.Mileage; 
      if(c.LastInspection != null && c.LastInspection != "N/A") 
      { 
       obj.LastInspectionDate = DateTime.ParseExact(c.LastInspection, "yyyy'/'mm'/'dd", null); 
      } 
      obj.StaffID = c.StaffID; 
      obj.OfficeID = c.OfficeID; 
      carsDate.Add(obj); 
     } 

     return carsDate; 

在我的记录之一,“c.LastInspection” =“2013年6月8日”,但每次我解析使用上面的代码,表示字符串时某些原因“obj.LastInspectionDate”被改为“星期二08/01/2013 00:06:00”。现在,我不打扰我,因为我只用它来存储日期,但很明显,这是错误的日期!经过代码很多次,我看不出我做错了什么。有任何想法吗?

回答

7

在您的格式字符串中将mm更改为MM

mm是:的那一刻,从00到59

MM是:月份,从01到12

检查的custom data and time format strings MSDN上的列表。

因为您使用mm06从您的输入字符串中获取分钟。并且由于没有指定月份1被视为默认值。

+1

...因为“mm”是分钟,“MM”是几个月。 – EricLaw 2013-03-22 20:29:13

+0

它的解析恰到好处:) – NSGaga 2013-03-22 20:31:27

+0

哇。是的,它排序,感觉像一个白痴现在哈哈。感谢:D – 2013-03-22 20:34:26

相关问题