Las*_*olt 37
多功能版本使用TimeSpan如下:
var span = new TimeSpan(0, 0, seconds); //Or TimeSpan.FromSeconds(seconds); (see Jakob C´s answer)
var yourStr = string.Format("{0}:{1:00}",
(int)span.TotalMinutes,
span.Seconds);
Run Code Online (Sandbox Code Playgroud)
x2.*_*x2. 28
int totalSeconds = 222;
int seconds = totalSeconds % 60;
int minutes = totalSeconds / 60;
string time = minutes + ":" + seconds;
Run Code Online (Sandbox Code Playgroud)
Jak*_*sen 19
为了完整起见,我将使用TimeSpan(从.NET 4.0起作用)添加答案:
int seconds = 1045;
var timespan = TimeSpan.FromSeconds(seconds);
Console.WriteLine(timespan.ToString(@"mm\:ss"));
Run Code Online (Sandbox Code Playgroud)
像这样的东西:
string minSec = string.Format("{0}:{1:00}", seconds / 60, seconds % 60);
Run Code Online (Sandbox Code Playgroud)
请注意,这将确保秒始终显示为两位数,例如"2:05",持续125秒.会议记录目前的处理方式不同,但当然可以.
这与负数无关.如果你的秒数可能是负数,你可能需要这样的东西:
string minSec = string.Format("{0}:{1:00}", seconds / 60,
(Math.Abs(seconds)) % 60);
Run Code Online (Sandbox Code Playgroud)
最后,你总是不到一小时的秒钟吗?当你真正的意思是"1:20:00"时,看到"80:00"可能看起来很奇怪.
double seconds=125;
TimeSpan.FromSeconds(seconds).ToString()
Run Code Online (Sandbox Code Playgroud)
会给你:00:02:05。根据我的理解,这个内置解决方案更具可扩展性,因为它也可以为您提供数小时的时间,而无需任何逻辑管道。