我糊涂了.在绊倒这个线程之后,我试图弄清楚如何格式化具有该格式的倒数计时器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)));
Run Code Online (Sandbox Code Playgroud)
所以,当我尝试一个类似的值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))));
Run Code Online (Sandbox Code Playgroud)
问题是这个TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)).应该是这样的TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)).