Saya bingung. Setelah menemukan utas ini , saya mencoba mencari tahu cara memformat penghitung waktu mundur yang memiliki format hh:mm:ss
.
Inilah usaha saya -
//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)));
Jadi, ketika saya mencoba nilai seperti 3600000ms
, saya dapatkan 01:59:00
, yang salah karena seharusnya 01:00:00
. Jelas ada yang salah dengan logika saya, tetapi saat ini, saya tidak dapat melihat apa itu!
Adakah yang bisa membantu?
Edit -
Memperbaikinya. Berikut cara yang tepat untuk memformat milidetik ke hh:mm:ss
format -
//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))));
Masalahnya adalah ini TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
. Seharusnya ini yang terjadi TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
.
00:59:59
, seharusnya01:00:00
.