2011-05-30 86 views
2

我希望在輸出中顯示「天(s)」一詞。我試圖在「天」前的所有字符和空格前放置「 - 」前面的轉義字符。任何想法或指針。c#自定義日期格式

這是我的工作線路,totalTimeInRoom是一個時間跨度:

totalTimeInRoom.ToString(@"dd\.hh\:mm\:ss"); 

編輯: 只是嘗試這樣做,沒有運氣:

totalTimeInRoom.ToString(@"dd \"Days(s)\" \- hh\:mm\:ss"); 

回答

2

我這個奮鬥之前,總是結束了「作弊」使用的String.Format:

// extend with minutes, seconds etc. if needed 
var text = String.Format ("{0} day(s), {1} hour(s)", totalTimeInRoom.Days, totalTimeInRoom.Hours); 

當然,你可以把更先進,更只顯示「天」,如果確實有1個或更多在時間跨度天也,而不是無條件地使用「天(S)」,你可以動態追加一個「s」時的天數不工作超過1

+0

真棒,謝謝!我會在8分鐘內回答。感謝您的幫助。 – rd42 2011-05-30 14:37:59

4

正如所解釋的here,您可以使用單引號字符在您的自定義日期格式中嵌入文字字符串:

totalTimeInRoom.ToString("dd' Day(s) 'hh':'mm':'ss"); 
+1

那。他使用的是TimeSpan – Magnus 2011-05-30 14:36:18

+0

@Magnus,它可以處理單引號字符。查看我更新的答案中的鏈接。 – 2011-05-30 14:39:09

+1

我認爲你需要'(s)'之後和'''之前的空間,而不是'hh'之前的空間。例如'totalTimeInRoom.ToString(「dd'Day(s)'hh':'mm':'ss')' – IndigoDelta 2011-05-30 14:39:47