2011-09-13 64 views
7

我有這樣的字符串「24:00:00」,我想將其轉換爲時間。我嘗試轉換和DateTime.Parse,但它似乎也需要一個日期。有沒有一種方法可以獲得時間,或者我還必須輸入日期?c#將字符串轉換爲日期時間

+7

僅供參考,24小時制的時間從0:00:00到23:59:59和24:00:00將是無效的。 – crashmstr

+0

看看這裏: http://stackoverflow.com/questions/4253270/c-how-to-convert-string-into-time-format-used-for-time-range –

回答

15

如果您只對時間組件感興趣,請考慮使用TimeSpan而不是完整的DateTime

var time = TimeSpan.Parse("23:59:59"); 
+0

我知道那裏有一些奇怪的日期格式......但在一段時間中有一個月對我來說是新的;-) – musefan

+0

Doh!我得到了我的月份和分鐘混合起來!無論如何,在你告訴我之前將其刪除。 –

3

我不確定「24:00:00」是否會成爲有效時間。任何怎麼,你不應該需要指定的日期,你可以做...

DateTime time = DateTime.ParseExact("23:59:59", "HH:mm:ss", null); 

如果你的時間實際上是一天的時間,那麼我會建議使用日期時間堅持。如果您在實際使用的時間量(即能更是23:59:59),那麼你可以使用時間跨度......

TimeSpan time = TimeSpan.ParseExact("23:59:59", "HH:mm:ss", null); 

不要忘了,雙方都有一個TryParseExact版本,如果你不確定你的輸入將是有效的

0

如何

var time = new DateTime.Today; 
var str = "24:00:00"; 
var split = str.split(":"); 

time.AddHours(Convert.ToInt32(split[0])); 
time.AddMinutes(Convert.ToInt32(split[1])); 
time.AddSeconds(Convert.ToInt32(split[2])); 

希望這有助於。

2

您可以使用DateTimeFormatInfo來格式化您的日期時間。

string strDate = "23:10:00"; 
DateTimeFormatInfo dtfi = new DateTimeFormatInfo(); 
dtfi.ShortTimePattern = "hh:mm:ss"; 
dtfi.TimeSeparator = ":"; 
DateTime objDate = Convert.ToDateTime(strDate, dtfi); 
Console.WriteLine(objDate.TimeOfDay.ToString()); 
相關問題