C# DateTime.TryParseExact无法使用预期的字符串

C# DateTime.TryParseExact无法使用预期的字符串,c#,datetime,C#,Datetime,您好,我有以下方法,我正在将值“07 Jan 2014 13:48:46”传递给它,据我所知,TryParseExact应与格式“dd-MMM-yyyy hh:mm:ss”匹配并返回true,但返回false,有什么想法吗 string[] formats= {"dd-MM-yyyy hh:mm:ss", "dd MMM yyyy hh:mm:ss", "dd MMM yyyy",

您好,我有以下方法,我正在将值“07 Jan 2014 13:48:46”传递给它,据我所知,TryParseExact应与格式“dd-MMM-yyyy hh:mm:ss”匹配并返回true,但返回false,有什么想法吗

string[] formats= {"dd-MM-yyyy hh:mm:ss",
                   "dd MMM yyyy hh:mm:ss",
                   "dd MMM yyyy",
                   "hh-mm-ss",
                   "dd-MM-yyyy",
                   "dd-MM-yy",
                  };

 DateTime result;
 if (DateTime.TryParseExact(value, formats, CultureInfo.CurrentCulture, DateTimeStyles.None, out result))
 {
     return result;
 }
 return null;

24小时制要求使用
HH
,而不是
HH
。小写的
h
表示12小时的时间


请参阅:

,因为您的格式都没有24小时时钟

用于
01
12
。它没有一个小时的
13

改用用于
00
23

有关更多信息,请参阅


什么是CurrentCulture?CultureInfo.CurrentCulture是en-GB@NickSpicer还要记住,
格式中的
字符表示所使用的区域性。如果您当前的区域性使用句点,如
中的
bn(Bangla(India))所使用的句点,则不会使用冒号进行解析。