DateTime.ParseExact 的格式字符串 - 什么小时格式适用于 "tt"?

The format string for DateTime.ParseExact - what hour format works with "tt"?

我想将字符串 5/4/2017 2:15:50 PM 转换为日期时间。我用了

statustime="5/4/2017 2:15:50 PM"
statustimefrm=DateTime.Parse(statustime, Globalization.CultureInfo.CurrentCulture)

它有效,但我宁愿使用 ParseExact。我用了

statustimefrm=DateTime.Parse(statustime,  "M/d/yyyy HH:mm:ss tt",Globalization.CultureInfo.CurrentCulture)

但是它给了我一个格式错误。有人知道要使用的格式吗?

"HH" 与 "tt" 不兼容 - 您要么有 24 小时时间,要么有 12 小时加 AM/PM 指示符。您需要使用 h for time:

 DateTime.ParseExact("5/4/2017 2:15:50 PM",  "M/d/yyyy hh:mm:ss tt",
       new CultureInfo("en-US")) 

这对我有用

DateTime.ParseExact(timespan, "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);