Как преобразовать миллисекунды в формат «чч:мм:сс»?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как преобразовать миллисекунды в формат «чч:мм:сс»?

Сообщение Anonymous »

Я в замешательстве. Наткнувшись на эту тему, я попытался понять, как отформатировать таймер обратного отсчета в формате чч:мм:сс.

Вот моя попытка —

Код: Выделить всё

//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)));
Итак, когда я пробую значение типа 3600000 мс, я получаю 01:59:00, что неверно, поскольку оно должно быть 01: 00:00. Очевидно, что-то не так с моей логикой, но на данный момент я не могу понять, в чем дело!

Кто-нибудь может помочь?

Изменить –

Исправлено. Вот правильный способ форматирования миллисекунд в формат чч:мм:сс -

Код: Выделить всё

//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.MILLISCONDS.toHours(millis)). Вместо этого должно было быть это TimeUnit.HOURS.toMinutes(TimeUnit.MILLISCONDS.toHours(millis)).

Подробнее здесь: https://stackoverflow.com/questions/902 ... mss-format
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»