2011-05-30 71 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