时间跨度(以毫秒为单位)仅分钟和秒
Timespan in milliseconds to minutes and seconds only
我有一个始终以毫秒为单位的时间跨度,但我只需要以分钟和秒为单位显示日期,以便它始终为 "mm:ss"
。即使时间跨度中有小时,输出字符串也应仅包含分钟和秒。
例如,如果时间跨度为 02:40:30
,则应将其转换为 160:30
。
有办法实现吗?
您可以使用 standard numeric format strings:
自行格式化
string output = string.Format("{0}:{1}", (int)timespan.TotalMinutes, timespan.Seconds);
这是一个非常基础的数学问题。
除以 1000 得到总秒数。
除以 60 得到分钟数。
总秒数 - (分钟 * 60) = 剩余秒数。
里德的回答几乎是正确的,但又不完全正确。例如,如果时间跨度为 00:01:59,则由于按 F0
数字格式四舍五入,Reed 的解决方案输出“2:59”。这是正确的实现:
string output = string.Format("{0}:{1:00}",
(int)timespan.TotalMinutes, // <== Note the casting to int.
timespan.Seconds);
在 C# 6 中,您可以使用字符串插值来减少代码:
var output = $"{(int)timespan.TotalMinutes}:{timespan.Seconds:00}";
我是这样做的
timespan.ToString("mm\:ss");
我有一个始终以毫秒为单位的时间跨度,但我只需要以分钟和秒为单位显示日期,以便它始终为 "mm:ss"
。即使时间跨度中有小时,输出字符串也应仅包含分钟和秒。
例如,如果时间跨度为 02:40:30
,则应将其转换为 160:30
。
有办法实现吗?
您可以使用 standard numeric format strings:
自行格式化string output = string.Format("{0}:{1}", (int)timespan.TotalMinutes, timespan.Seconds);
这是一个非常基础的数学问题。
除以 1000 得到总秒数。
除以 60 得到分钟数。 总秒数 - (分钟 * 60) = 剩余秒数。
里德的回答几乎是正确的,但又不完全正确。例如,如果时间跨度为 00:01:59,则由于按 F0
数字格式四舍五入,Reed 的解决方案输出“2:59”。这是正确的实现:
string output = string.Format("{0}:{1:00}",
(int)timespan.TotalMinutes, // <== Note the casting to int.
timespan.Seconds);
在 C# 6 中,您可以使用字符串插值来减少代码:
var output = $"{(int)timespan.TotalMinutes}:{timespan.Seconds:00}";
我是这样做的
timespan.ToString("mm\:ss");