我必须使用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.
我很难过这里有什么不对劲。我做错了什么?
注意:不要担心时区。我可以稍后处理获得正确的时区。
答案 0 :(得分:20)
问题是您指定的日期时间格式使用hh
表示12小时时间格式,但输入字符串在该区域中有15
。它无法解析这个因为15超出预期范围。
尝试使用HH
代替24小时格式:
string x = "20130722153523";
DateTime y = DateTime.ParseExact(x, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
进一步阅读: