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

如何将TimeSpan转换为含总分钟数、秒数和毫秒数的格式?

解决TimeSpan显示总分钟数(含小时转换)、秒数和毫秒数的问题

你遇到的问题根源在于TimeSpan的mm格式符仅提取不足1小时的剩余分钟数,而非将小时转换为分钟后的总分钟数。要实现需求,需手动计算总分钟数,再拼接秒和毫秒部分:

修正后的代码

var d1 = new DateTime(2020, 12, 1, 12, 00, 00);
var d2 = new DateTime(2020, 12, 1, 10, 12, 30);
        
var timeSpan = d1 - d2;
// 计算总分钟数:将小时转换为分钟后加上原有分钟数
int totalMinutes = timeSpan.Hours * 60 + timeSpan.Minutes;
// 拼接秒数和毫秒数,利用ToString获取标准格式的秒、毫秒部分
Console.WriteLine($"{totalMinutes}:{timeSpan.ToString(@"ss\:fff")}");

代码说明

  • 原代码中的mm对应TimeSpan的Minutes属性,只会返回0-59的数值(即当前小时内的剩余分钟),所以1小时47分的场景下仅显示47,忽略了小时部分。
  • 通过timeSpan.Hours * 60 + timeSpan.Minutes可得到完整总分钟数(1*60+47=107),搭配ss\:fff格式获取秒和毫秒后,最终输出107:30:000,完全符合需求。

如果需要将秒数也转换为分钟小数(比如把30秒显示为0.5分钟),可以使用timeSpan.TotalMinutes,但多数场景下保留「整数分钟+单独秒数/毫秒数」的格式更直观。

内容的提问来源于stack exchange,提问作者user20510170

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:30:42