如何在Java中将毫秒转换为“ X分钟,x秒”?

我想记录System.currentTimeMillis()用户在我的程序中开始执行操作所用的时间。当他完成后,我会减去当前System.currentTimeMillis()start变量,我想向他们展示使用人类可读的格式经过诸如“XX小时XX分钟,XX秒”,甚至是“XX分钟,XX秒”的时间,因为它的不太可能花一个小时。

最好的方法是什么?

回答:

使用java.util.concurrent.TimeUnit类:

String.format("%d min, %d sec", 

TimeUnit.MILLISECONDS.toMinutes(millis),

TimeUnit.MILLISECONDS.toSeconds(millis) -

TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))

);

注意:TimeUnitJava 1.5规范的一部分,但从toMinutesJava 1.6开始添加。

要为值0-9添加前导零,只需执行以下操作:

String.format("%02d min, %02d sec", 

TimeUnit.MILLISECONDS.toMinutes(millis),

TimeUnit.MILLISECONDS.toSeconds(millis) -

TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))

);

如果不支持TimeUnit或toMinutes(例如,在API版本9之前的Android上),请使用以下公式:

int seconds = (int) (milliseconds / 1000) % 60 ;

int minutes = (int) ((milliseconds / (1000*60)) % 60);

int hours = (int) ((milliseconds / (1000*60*60)) % 24);

//etc...

以上是 如何在Java中将毫秒转换为“ X分钟,x秒”? 的全部内容, 来源链接: utcz.com/qa/433964.html

回到顶部