以下代码为我返回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,我该如何修复呢?
答案 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))