我想將字符串轉換爲日期時間。我收到一個錯誤This is not a valid datetime
。從字符串轉換爲日期時間在C#
我想要轉換的字符串和代碼如下。
string date1 = "9/13/2012 5:26:06 PM";
TimePart = DateTime.ParseExact(date1, "M/d/yyyy HH:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
我想將字符串轉換爲日期時間。我收到一個錯誤This is not a valid datetime
。從字符串轉換爲日期時間在C#
我想要轉換的字符串和代碼如下。
string date1 = "9/13/2012 5:26:06 PM";
TimePart = DateTime.ParseExact(date1, "M/d/yyyy HH:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
您需要使用小寫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。
我認爲它應該是M/dd/yyyy h:mm:ss tt
在您的格式參數。
不,即使這是行不通的。錯誤是字符串未被識別爲有效的日期時間。 –
嘗試刪除第一個「H」。 –
@ShamiC我剛剛更新了答案,因爲您已經添加了'tt',它不再是'24小時'格式了。所以把'HH'換成'hh' –
它看起來像HH
不符合「5」。嘗試h
。
這真的應該是一個評論 –
看起來你的格式確實是M/d/yyyy h:mm:ss tt
。差異是h
(12小時,只有需要的位數),而不是HH
(24小時,前導0填充到2位數字)。
如果輸入格式可以改變,您應該使用DateTime.Parse
來代替,以便您不必告訴它確切的格式。 ParseExact
速度更快,並且要求它與指定的格式相匹配,這在您的演員陣容中可能更可取。
對於12小時制時鐘,您應該使用小寫字母h
(因爲您有AM/PM
代號)。
此外,您應該只使用一個h
,因爲您沒有領先的0
到幾小時,並且hh
預計它。
格式字符串的作品:
"M/d/yyyy h:mm:ss tt"
您可能會發現有用的:則DateTime.ToString()模式(http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8 -F859AA20581F.htm) – Otiel
http://stackoverflow.com/q/3025916/1731716這個鏈接可能會幫助你 –