解析格式“2013-Jan-31”的日期时间会引发错误

时间:2013-01-04 08:00:54

标签: c# .net datetime exception-handling datetime-parsing

我在数据库中有一个datetime列。

DateTime end_date = DateTime.ParseExact("2013-Jan-31", "yyyy-MM-dd", CultureInfo.InvariantCulture);

为什么这不起作用?

4 个答案:

答案 0 :(得分:3)

这不起作用,因为MM表示1月为01.如果这是您尝试解析的日期的格式,请尝试格式"yyyy-MMM-dd"

希望这有帮助

答案 1 :(得分:2)

试试这个;

DateTime a = DateTime.ParseExact("2013-Jan-31", "yyyy-MMM-dd", System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine (a);

输出:

31.01.2013

从MSDN Custom Date and Time Format Strings

查看

答案 2 :(得分:2)

要使用月份名称,您需要使用“MMM”,因此它将是

 myObject.end_date = DateTime.ParseExact("2013-Jan-31", "yyyy-MMM-dd", System.Globalization.CultureInfo.InvariantCulture);

答案 3 :(得分:1)

MM表示两位数的月份(例如“01”)。

MMM表示缩写的月份(例如“Jan”)。

这意味着你需要

myObject.end_date = DateTime.ParseExact("2013-Jan-31", "yyyy-MMM-dd", System.Globalization.CultureInfo.InvariantCulture);

有关字符串格式说明符的列表,请参阅http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx