2012-11-19 79 views

回答

3
var dt = DateTime.ParseExact("2300H", @"HHmm\H", CultureInfo.InvariantCulture); 

,如果你需要的時候

var time = dt.TimeOfDay; 
+0

偷走您的代碼,我的答案與TimeSpan以及:) –

4

如果只是處理時間部分可能會更好使用像這裏ParseExact把它變成一個時間跨度結構:

http://msdn.microsoft.com/en-us/library/dd992370.aspx

是LB提供的代碼將它送給你一個日期時間,但你會得到值不準確的一天,每月的東西。如果它適合你的設計,你可以使用相同的代碼來存儲你的信息在一個時間跨度,而不是:

var timeSpan = TimeSpan.ParseExact("2300H", @"hhmm\H", CultureInfo.InvariantCulture); 
+0

除非你碰巧知道這一天還有我認爲這是一個更好的方式,但是如果不瞭解更多關於您的系統或您想要完成的內容,很難說出 –

+0

該代碼無效。 – Magnus

+0

真的嗎? k我會修復它一秒 –

1

下會返回一個DateTime其日期是當前日期,種類未指定,時間等於所提供的時間(23:00):

string s = "2300H"; 
DateTime d = DateTime.ParseExact(s, @"HHmm\H", CultureInfo.InvariantCulture); 

或下會返回一個DateTime其日期是01月01日0001,一種是未指定的,時間也等於所提供的時間(23:00):

DateTime.ParseExact(s, @"HHmm\H", CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault); 
+0

不,它不會返回'1月1日0001'。它會返回'今天' –

+0

@ L.B - 試試吧!如果您指定DateTimeStyles.NoCurrentDateDefault,它將返回01 01 011. – Joe

+0

喬,我錯過了那部分:( –

相關問題