我有一个制表符分隔文件,该文件正在被解析然后插入到数据库中。当我遇到日期列时,我无法解析它。
我的代码是:
var insert = DateTime.ParseExact(line[i], "d/M/yyyy h:mm", CultureInfo.InvariantCulture);
line[i]
中的字符串格式为7/7/2011 10:48
我得到的例外是
日历中不支持字符串表示的DateTime System.Globalization.GregorianCalendar。
答案 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);