如何以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