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

时间:2017-03-08 16:40:37

标签: c# .net parsing datetime

以下代码为我返回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;

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

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

2 个答案:

答案 0 :(得分: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"

要:

"MM/dd/yyyy HH:mm"

答案 1 :(得分:1)

正确的格式应为MM/dd/yyyy HH:mm

if (!DateTime.TryParseExact(
                    localDateTimeString,
                    "MM/dd/yyyy HH:mm",
                    CultureInfo.InvariantCulture,
                    DateTimeStyles.None,
                    out localDateTime)) 
相关问题