Timespan仅以毫秒为单位,以分钟和秒为单位

Gab*_*bar 4 c# datetime timespan

我有一个始终以毫秒为单位的Timespan,但我需要以分钟和秒为单位显示日期,以便始终如此"mm:ss".即使在时间跨度内有几个小时,输出字符串也应该只包含几分钟和几秒.

例如,如果有一个时间跨度02:40:30,它应该被转换为160:30.

有没有办法实现这个目标?

Die*_*ego 9

里德的回答几乎是正确的,但并不完全正确.例如,如果时间跨度为00:01:59,则由于F0数字格式的舍入,Reed的解决方案输出"2:59" .这是正确的实现:

string output = string.Format("{0}:{1:00}", 
        (int)timespan.TotalMinutes, // <== Note the casting to int.
        timespan.Seconds); 
Run Code Online (Sandbox Code Playgroud)

在C#6中,您可以使用字符串插值来减少代码:

var output = $"{(int)timespan.TotalMinutes}:{timespan.Seconds:00}";
Run Code Online (Sandbox Code Playgroud)


iho*_*ond 6

我这样做

timespan.ToString("mm\\:ss");
Run Code Online (Sandbox Code Playgroud)

  • 61 分钟将显示为“01:00” - 哎呀! (2认同)

Ree*_*sey 5

您可以使用标准数字格式字符串自行格式化:

string output = string.Format("{0}:{1}", (int)timespan.TotalMinutes, timespan.Seconds);
Run Code Online (Sandbox Code Playgroud)