DateTime.ParseExact错误格式说明符

本文关键字:说明符 格式 错误 ParseExact DateTime | 更新日期: 2023-09-27 18:16:54

以下代码

var test = "2016-10-26_02-48-17-PM";
var testTime = DateTime.ParseExact(test, 
                                   "yyyy-MM-dd_HH-mm-ss-tt", 
                                   System.Globalization.CultureInfo.InvariantCulture);

抛出异常;

类型为"System"的未处理异常。FormatException'发生在mscorlib.dll

附加信息:字符串未被识别为有效的日期时间。

当执行

。我错过了什么?

DateTime.ParseExact错误格式说明符

您将24小时时间说明符"HH"与AM/PM字符串"tt"混淆了。

如果你的时间是24小时制(00 - 23),那么你不需要AM/PM指定。但是,如果您的时间是12小时的AM/PM格式,则需要使用"hh"小时指定符。

:

var test = "2016-10-26_02-48-17";
var testTime = DateTime.ParseExact(test, "yyyy-MM-dd_HH-mm-ss", System.Globalization.CultureInfo.InvariantCulture);

或:

var test = "2016-10-26_02-48-17-PM";
var testTime = DateTime.ParseExact(test, "yyyy-MM-dd_hh-mm-ss-tt", System.Globalization.CultureInfo.InvariantCulture);

应该