我有一个制表符分隔的文件,正在解析该文件,然后将其插入数据库中。当我遇到日期列时,我无法解析它。
我的代码是:
var insert = DateTime.ParseExact(line[i], "d/M/yyyy h:mm", CultureInfo.InvariantCulture);
line[i]
中的字符串格式为: 7/7/2011 10:48
, 10/20/2011 6:27
我得到的例外是
日历中不支持字符串表示的DateTime System.Globalization.GregorianCalendar.
您的格式字符串错误。改为
insert = DateTime.ParseExact(line[i], "M/d/yyyy hh:mm", CultureInfo.InvariantCulture);
那是因为您在
line[i]
中有美国格式的日期,在 FormatString
中有英国格式的日期。
11/20/2011
M / d/yyyy
我猜您可能需要将 FormatString 更改为:
"M/d/yyyy h:mm"
这可能与相关 SO 线程中提出的文化问题相同:为什么 DateTime.ParseExact() 不能使用“M/d/yyyy”解析“9/1/2009”
您已经指定了区域性,因此请尝试转义斜杠。
试试这个
var insert = DateTime.ParseExact(line[i], "M/d/yyyy h:mm", CultureInfo.InvariantCulture);
var insert = DateTime.ParseExact(line[i].toString(), "d/M/yyyy h:mm", CultureInfo.InvariantCulture);