我有点困惑。在偶然看到这个帖子后,我尝试着弄清楚如何格式化一个倒计时器,使其呈现出
以下是我的尝试 -
有人能帮忙吗?
编辑 -
已经解决了。以下是将毫秒格式化为
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
。 - Borealid