我很困惑。绊倒这个线程后,我试图找出如何格式化具有格式的倒数计时器hh:mm:ss
。
这是我的尝试-
//hh:mm:ss
String.format("%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) -
TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
因此,当我尝试类似的值时3600000ms
,我得到01:59:00
,这是错误的,因为它应该是01:00:00
。显然我的逻辑有问题,但是目前,我看不出它是什么!
有人可以帮忙吗?
编辑-
解决它。这是格式化毫秒hh:mm:ss
格式的正确方法-
//hh:mm:ss
String.format("%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))));
问题是这样TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
。应该是这个TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
。
00:59:59
,应该这样01:00:00
。