혼란 스러워요. 이 스레드를 우연히 만난 후 형식이있는 카운트 다운 타이머를 형식화하는 방법을 알아 내려고했습니다 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
.