1

只是想知道是否有人能告诉我为什么在这行代码(如下)中,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' 都会更改为 "Tuesday 08/01/2013 00:06:00”。现在日期和时间不会打扰我,因为我只是用它来存储日期,但是,很明显,这是错误的日期!多次浏览代码,我看不出我做错了什么。有任何想法吗?

4

1 回答 1

7

更改mmMM您的格式字符串。

mm是:分钟,从 00 到 59。

MM是:月份,从 01 到 12。

检查MSDN 上的自定义数据和时间格式字符串列表。

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

于 2013-03-22T20:28:22.640 回答