DateTime.ParseExact()产生异常结果。谁能告诉我为什么?

时间:2013-03-22 20:26:36

标签: c# 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/06/08”,但由于某种原因,每次我使用上面的代码解析所述字符串时,'obj.LastInspectionDate'变为“星期二08 / 01/2013 00:06:00“。现在这一天和时间不要打扰我,因为我只用它来存储日期,但很明显,这是错误的约会!通过代码多次,我看不出我做错了什么。有任何想法吗?

1 个答案:

答案 0 :(得分:7)

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

mm是:分钟,从00到59。

MM是:月份,从01到12。

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

因为您使用输入字符串中的mm 06作为分钟。并且因为没有指定月份1被视为默认值。