如何将秒转换为分:秒格式
一种多功能的版本是使用 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);
int totalSeconds = 222;
int seconds = totalSeconds % 60;
int minutes = totalSeconds / 60;
string time = minutes + ":" + seconds;
为完整性起见,我将添加一个使用 TimeSpan
的答案(在 .NET 4.0 中有效):
int seconds = 1045;
var timespan = TimeSpan.FromSeconds(seconds);
Console.WriteLine(timespan.ToString(@"mm\:ss"));
.FromSeconds
而不是像我一样使用构造函数。但是你的代码无法编译——没有.ToString
的重载。 - Lasse Espeholt类似这样:
string minSec = string.Format("{0}:{1:00}", seconds / 60, seconds % 60);
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
。根据我的理解,这个内置的解决方案更具可扩展性,因为它可以给出小时数,而不需要任何逻辑上的改变。
TimeSpan.FromSeconds(seconds).ToString(@"hh\:mm\:ss")
以小时、分钟、秒的格式获取时间。如果您还想要毫秒,可以使用 .ToString(@"hh\:mm\:ss\:fff");
。 - Gopivar seconds = 60;
//10,000 ticks in a millisecond
var ticks = seconds*10000*1000;
DateTime dt = new DateTime(ticks);
dt.ToString("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
简单的数学,60秒等于一分钟。
int mins = totalseconds/60;
int secs = totalseconds % 60;
Console.Writeline(string.Format("{0}:{1}", mins, secs));
使用PadLeft的另一种显示秒数的方式可以是“2:05”等。
string time = minutes.ToString() + ":" + seconds.ToString().PadLeft(2,'0');
float seconds = 339;
float totalTimeInMins = (float) (Math.Floor(seconds / 60) + (seconds % 60) / 100);