我有HH:mm:来自数据库的ss,HH超过100。 我有大约3行的数据。
我想用HH计算总显示:mm:ss。
所以,我把HH:mm:ss分成了第二名,我得到了第二名。我这样工作。
TimeSpan t = TimeSpan.FromSeconds(TTTot);
string answer="";
answer = string.Format("{0:D2}:{1:D2}:{2:D2}", t.Hours, t.Minutes, t.Seconds);
answer = string.Format("{0:D2}-{1:D2}:{2:D2}:{3:D2}", t.Days, t.Hours, t.Minutes, t.Seconds);
answer = string.Format("{0:D5}:{1:D2}:{2:D2}",t.TotalHours, t.Minutes, t.Seconds);
答案的第一行是我的原始代码。我只看到了大约15个小时,而总价值大约为130个。
所以我升级到了第二行答案,与第一天一起显示。这很有效。
但是,我想显示总时数。所以我将代码修改为第三行,我将异常作为
Invalid format exception
我想知道如何扭转以获得我想要的结果。 HH:mm:带有HH的ss可能有百个值。
答案 0 :(得分:3)
此MSDN Library page非常相关。它说的是D或d格式说明符:
“D”(或十进制)格式说明符 将数字转换为字符串 十进制数字(0-9),以a为前缀 减号如果数字为负数。 仅支持此格式 整体类型。
这是一个问题,TimeSpan.Hours返回 double 值,而不是像TimeSpan.Minutes那样的整数值。您可以通过截断(而不是舍入)double值来解决此问题,如下所示:
answer = string.Format("{0:D5}:{1:D2}:{2:D2}",
(int)t.TotalHours, t.Minutes, t.Seconds);