Я збентежений. Натрапивши на цю нитку, я спробував розібратися, як відформатувати таймер зворотного відліку, який мав формат 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
.