关于c#:DateTime.ParseExact格式说明符不正确

DateTime.ParseExact Incorrect Format Specifier

以下代码

1
2
3
4
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);

抛出异常;

An unhandled exception of type 'System.FormatException' occurred in
mscorlib.dll

Additional information: String was not recognized as a valid DateTime.

执行时。我错过了什么?


您将24小时说明符"hh"与AM/PM字符串"tt"混合在一起。

如果您的时间是24小时制(00-23),那么您不需要AM/PM名称。但是,如果您的时间是上午/下午12小时格式,则需要使用"hh"小时说明符。

这是:

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

或者:

1
2
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);

应该工作