如何以min:sec格式转换秒数

如何以分钟为单位转换秒数:第二种格式

int totalSeconds = 222; int seconds = totalSeconds % 60; int minutes = totalSeconds / 60; string time = minutes + ":" + seconds; 

一个多function的版本是使用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); 

为了完整TimeSpan我将使用TimeSpan (从.NET 4.0开始工作)添加答案:

 int seconds = 1045; var timespan = TimeSpan.FromSeconds(seconds); Console.WriteLine(timespan.ToString(@"mm\:ss")); 

像这样的东西:

 string minSec = string.Format("{0}:{1:00}", seconds / 60, seconds % 60); 

请注意,这将确保秒始终显示为两位数,例如“2:05”,持续125秒。 会议记录目前的处理方式不同,但当然可以。

这与负数无关。 如果你的秒数可能是负数,你可能需要这样的东西:

 string minSec = string.Format("{0}:{1:00}", seconds / 60, (Math.Abs(seconds)) % 60); 

最后,你总是会有不到一个小时的秒钟吗? 当你真正的意思是“1:20:00”时,看到“80:00”可能看起来很奇怪。

 double seconds=125; TimeSpan.FromSeconds(seconds).ToString() 

00:02:05会给你的。 根据我的理解,这个内置解决方案更具可扩展性,因为它可以给你几个小时,而不需要任何逻辑管道。

简单的数学。 60秒到一分钟。

 int mins = totalseconds/60; int secs = totalseconds % 60; Console.Writeline(string.Format("{0}:{1}", mins, secs)); 

将秒显示为例如“2:05”的另一种方法可以是使用PadLeft。

 string time = minutes.ToString() + ":" + seconds.ToString().PadLeft(2,'0'); 
 var seconds = 60; //10,000 ticks in a millisecond var ticks = seconds*10000*1000; DateTime dt = new DateTime(ticks); dt.ToString("mm:ss"); 

什么对我有用……

 public static string SecondsToMinutes(int seconds) { var ts = new TimeSpan(0, 0, seconds); return new DateTime(ts.Ticks).ToString(seconds >= 3600 ? "hh:mm:ss" : "mm:ss"); } 

不严格回答原来的问题,但是如果将来有人(或我自己)来谷歌想要用毫秒来格式化一个浮点数:

 float secs = 23.69; string m_ss_mmm = string.Format("{0}:{1:00}.{2:000}", (int)secs / 60, (int)(secs % 60), (secs - ((int)secs)) * 1000); 

结果:

 0:23.690