解析自定义日期时间格式

时间:2013-07-22 20:22:51

标签: c# .net parsing datetime

我必须使用DateTime格式从字符串中解析yyyyMMddhhmmss个对象。

如果我运行此代码,它可以正常工作:

DateTime y = new DateTime(2013, 07, 22, 15, 35, 23);
string x = y.ToString("yyyyMMddhhmmss", CultureInfo.InvariantCulture);

但是如果我运行这段代码 - 看似反向操作 - 我得到一个例外:

string x = "20130722153523";
DateTime y = DateTime.ParseExact(x, "yyyyMMddhhmmss", CultureInfo.InvariantCulture);

例外是:

System.FormatException: String was not recognized as a valid DateTime.

我很难过这里有什么不对劲。我做错了什么?

注意:不要担心时区。我可以稍后处理获得正确的时区。

1 个答案:

答案 0 :(得分:20)

问题是您指定的日期时间格式使用hh表示12小时时间格式,但输入字符串在该区域中有15。它无法解析这个因为15超出预期范围。

尝试使用HH代替24小时格式:

string x = "20130722153523";
DateTime y = DateTime.ParseExact(x, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);

进一步阅读: