2013-03-22 135 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

相關問題