C#DateTime.ParseExact

时间:2011-12-06 14:34:24

标签: c# parsing datetime

我有一个制表符分隔文件,该文件正在被解析然后插入到数据库中。当我遇到日期列时,我无法解析它。

我的代码是:

var insert = DateTime.ParseExact(line[i], "d/M/yyyy h:mm", CultureInfo.InvariantCulture);

line[i]中的字符串格式为7/7/2011 10:48 我得到的例外是

  

日历中不支持字符串表示的DateTime   System.Globalization.GregorianCalendar。

4 个答案:

答案 0 :(得分:65)

您的格式字符串错误。将其更改为

insert = DateTime.ParseExact(line[i], "M/d/yyyy hh:mm", CultureInfo.InvariantCulture);

答案 1 :(得分:3)

那是因为您在line[i]中使用美国格式的日期,在FormatString中使用英国格式。

11/20/2011
M / d/yyyy

我猜你可能需要将FormatString更改为:

"M/d/yyyy h:mm"

答案 2 :(得分:1)

这可能与此相关SO线程中提出的文化问题相同:Why can't DateTime.ParseExact() parse "9/1/2009" using "M/d/yyyy"

您已经指定了文化,因此请尝试转义斜杠。

答案 3 :(得分:1)

试试这个

var  insert = DateTime.ParseExact(line[i], "M/d/yyyy h:mm", CultureInfo.InvariantCulture);