在C#中从String转换为DateTime

时间:2012-10-18 14:09:00

标签: c# sql datetime

我想将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);

5 个答案:

答案 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