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:ssformat -
//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.