对于MM/dd/yyyy hh:mm,DateTime.TryParseExact返回false

kat*_*tit 1 .net c# datetime parsing

以下代码返回false给我,我只是无法弄清楚我做错了什么.

var localDateTimeString = "03/24/2016 21:05"; // subject.Substring(0, 16);

DateTime localDateTime;
if (!DateTime.TryParseExact(
    localDateTimeString,
    "MM/dd/yyyy hh:mm",
    CultureInfo.InvariantCulture,
    DateTimeStyles.None,
    out localDateTime)) return false;
Run Code Online (Sandbox Code Playgroud)

格式固定为16个字符串,日期,月份,分钟和小时始终为2位数.年份4位数.

但是这段代码返回false,我该如何修复呢?

The*_*der 5

短版本应该HH不是hh.除非单个数字小时(0到9)作为单个数字返回; 在这种情况下你应该使用H.


来自MSDN:

  • HH:小时,使用从00到23的24小时制.
  • hh:小时,从01到12使用12小时制.
  • H:小时,使用从0到23的24小时制.
  • h:小时,使用1小时至12小时的12小时制.

从根本上改变您的格式:

"MM/dd/yyyy hh:mm"
Run Code Online (Sandbox Code Playgroud)

至:

"MM/dd/yyyy HH:mm"
Run Code Online (Sandbox Code Playgroud)