使用DateTime.ParseExact()
时,我有一个奇怪的行为工作正常
DateTime.ParseExact("130314111405.000", "ddMMyyhhmmss.fff", null);
格式异常
DateTime.ParseExact("130314130001.000", "ddMMyyhhmmss.fff", null);
感谢任何有用的想法。
答案 0 :(得分:4)
您的hour
部分是24小时格式。您需要HH
而非hh
12小时格式。
DateTime.ParseExact("130314130001.000", "ddMMyyHHmmss.fff", null);
//^^^Here
小时13
无法使用支持0-12小时的hh
进行解析。
我不确定您为null
传递IFormatProvider
的原因,您应该(请参阅this answer)使用CultureInfo.InvariantCulture
,如:
DateTime.ParseExact("130314130001.000", "ddMMyyHHmmss.fff", CultureInfo.InvariantCulture);
答案 1 :(得分:2)
问题:您正尝试使用较小的13
解析小hh
小时值,小hh
不支持,因为来自MSDN: hh Custom Format
小时,使用从 01 到 12 的12小时制。
因此,您需要使用来自MSDN HH Custom Format
HH
代替hh
小时,使用从 00 到 23 的24小时制。
试试这个:
DateTime.ParseExact("130314130001.000", "ddMMyyHHmmss.fff", null);
答案 2 :(得分:1)
使用DateTime.ParseExact("130314130001.000", "ddMMyyHHmmss.fff", null);