为什么Datetime.ParseExact不起作用

bha*_*esh -2 c# string datetime

我试图解析以下内容 09/04/2015 17:22:29.183 PM

代码如下:

string s = "09/04/2015 17:22:29.183 PM";
DateTime.ParseExact(s,Constants.DateTimeFormat,System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

DateTimeFormatIS形式的dd/MM/yyyy hh:mm:ss.fff tt

但是编译器会抛出错误.我哪里错了?

Son*_*nül 8

hh12小时制时钟格式,这需要0112,你需要使用HH这是24小时制时钟格式,这需要0023.

string s = "09/04/2015 17:22:29.183 PM";
DateTime dt;
if(DateTime.TryParseExact(s, "dd/MM/yyyy HH:mm:ss.fff tt", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
    dt.Dump(); // 09.04.2015 17:22:29
}
Run Code Online (Sandbox Code Playgroud)

但另一方面,AM或PM指示符用于12小时时钟格式.这就是为什么没有17 PM或17 AM这样的事情.