我想将String转换为Datetime。我收到错误This is not a valid datetime
。
我要转换的字符串和代码如下。
string date1 = "9/13/2012 5:26:06 PM";
TimePart = DateTime.ParseExact(date1, "M/d/yyyy HH:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
答案 0 :(得分:6)
我认为格式参数应为M/dd/yyyy h:mm:ss tt
。
答案 1 :(得分:3)
看起来你的格式真的是M/d/yyyy h:mm:ss tt
。区别为h
(12小时,只需要多少位数),而不是HH
(24小时,前导0可填充到2位)。
如果输入格式完全不同,则应使用DateTime.Parse
代替,这样您就不必告诉它确切的格式。 ParseExact
速度更快,并且要求它与指定的格式匹配,这在您的演员阵容中可能更为可取。
答案 2 :(得分:2)
您需要使用小写h
:
DateTime TimePart = DateTime.ParseExact(
date1,
"M/d/yyyy h:mm:ss tt",
CultureInfo.InvariantCulture);
Console.WriteLine(TimePart); // 09/13/2012 17:26:06
大写“H”是24小时制,小写“h”是12小时制AM / PM。
答案 3 :(得分:2)
你应该使用小写h
12小时(因为你有一个AM/PM
指示符)。
此外,您应该只使用一个h
,因为您没有领先0
小时,hh
期望它。
有效的格式字符串:
"M/d/yyyy h:mm:ss tt"
答案 4 :(得分:1)
看起来HH
与“5”不匹配。试试h
。