我有文本框,接受時間格式這樣12:40 PM,但想將它轉換成像這樣的時間格式12:40:00基本上沒有PM或上午。以下是我迄今爲止:如何將字符串格式的時間轉換爲日期時間格式使用C#
string StartTime = ((TextBox)TestDV.FindControl("txtBST")).Text.ToString();
感謝
我有文本框,接受時間格式這樣12:40 PM,但想將它轉換成像這樣的時間格式12:40:00基本上沒有PM或上午。以下是我迄今爲止:如何將字符串格式的時間轉換爲日期時間格式使用C#
string StartTime = ((TextBox)TestDV.FindControl("txtBST")).Text.ToString();
感謝
既然你把它作爲一個字符串,這實際上很容易。
string StartTime = ((TextBox)TestDV.FindControl("txtBST")).Text.ToString();
DateTime dt = new DateTime();
try { dt = Convert.ToDateTime(StartTime); }
catch(FormatException) { dt = Convert.ToDateTime("12:00 AM"); }
StartTime = dt.ToString("HH:mm");
所以你把你的字符串,並將其轉換爲日期。如果輸入不是有效日期,則默認爲00:00。無論哪種方式,它都會給你一個字符串和一個DateTime對象來處理,這取決於你需要做什麼。兩者都代表相同的值,但字符串將採用24小時格式。
乾杯!
一種選擇將是解析爲DateTime
,然後返回一個字符串:
string s = "12:40 PM";
DateTime dt = DateTime.Parse(s);
string s2 = dt.ToString("HH:mm:ss"); // 12:40:00
注意,但是,大多數與DateTime
的字符串表示相比,DateTime
的運行效果更好。
我個人會避開通用的'DateTime.Parse' - 如果格式已知,請指定它! – 2013-04-30 18:12:30
另外,你的意思是'ss',而不是'mm' – 2013-04-30 18:14:42
@JonSkeet我同意 - 只是想到了一般想法。 – 2013-04-30 18:16:33
首先,您應該將其解析爲DateTime
,然後對其進行格式化。這聽起來像你的輸入格式是hh:mm tt
和你的輸出格式是HH:mm:ss
。所以,你必須:
string input = "12:40 PM"
DateTime dateTime = DateTime.ParseExact(input, "hh:mm tt",
CultureInfo.InvariantCulture);
string output = dateTime.ToString("HH:mm:ss", CultureInfo.InvariantCulture);
需要注意的是:
DateTime.ParseExact
如果解析失敗,將拋出一個異常;你可能想使用DateTime.TryParseExact
(這取決於你的情況)hh:mm
,但你可能想要h:mm
...你會期望「下午1點」或「01點」?
在.net中嘗試谷歌日期時間格式 – 2013-04-30 18:07:24
DateTime.Parse或DateTime.TryParse方法。看看他們。 – 2013-04-30 18:08:12
http://msdn.microsoft.com/en-us/library/se73z7b9.aspx TimeSpan.Parse應該訣竅 – 2013-04-30 18:08:30