You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将C# TimeSpan转换为天数计入小时的hh:mm:ss格式

解决TimeSpan按总小时数格式化为hh:mm:ss的问题

针对你提供的TimeSpan对象(9天4小时,总时长220小时),默认ToString()返回9.04:00:00,要得到220:00:00的格式,需要手动处理总小时数——因为TimeSpan的标准格式字符串没有直接输出总小时数的占位符,具体实现方式如下:

方法一:直接拼接总小时、分钟、秒

利用TimeSpan的TotalHours属性获取总时长的小时数(取整数部分),再结合Minutes和Seconds属性,通过字符串格式化确保分钟和秒为两位数字:

TimeSpan ts = new TimeSpan(9, 4, 0, 0);
string formatted = $"{(int)ts.TotalHours}:{ts.Minutes:D2}:{ts.Seconds:D2}";
// 输出结果:"220:00:00"

方法二:处理含小数的总小时场景(可选)

如果TimeSpan包含非整数小时的情况(比如9天4小时30分钟15秒),上述代码依然有效,Minutes和Seconds会直接取当前的分钟和秒数:

TimeSpan ts = new TimeSpan(9, 4, 30, 15);
string formatted = $"{(int)ts.TotalHours}:{ts.Minutes:D2}:{ts.Seconds:D2}";
// 输出结果:"220:30:15"

注意事项

  • 不要使用ToString("HH:mm:ss"),因为HH仅表示TimeSpan中当天的小时数(范围0-23),会输出04:00:00而非总小时数。
  • 使用D2格式说明符可以确保分钟和秒始终以两位数字显示(比如1分钟会显示为01)。

内容的提问来源于stack exchange,提问作者Tom el Safadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:25:23