Rumah > Java > javaTutorial > Bagaimana untuk Menukar Millisaat kepada Format \'hh:mm:ss\' dalam Java?

Bagaimana untuk Menukar Millisaat kepada Format \'hh:mm:ss\' dalam Java?

Mary-Kate Olsen
Lepaskan: 2024-11-01 19:09:30
asal
474 orang telah melayarinya

How to Convert Milliseconds to

Memformatkan Milisaat kepada "hh:mm:ss"

Masalah:

Seorang pembangun yang bekerja dengan pemasa undur pertemuan kesukaran menukar milisaat kepada format "hh:mm:ss" yang dikehendaki. Percubaan awal mereka mengakibatkan paparan masa yang salah, terutamanya untuk nilai yang melebihi satu jam.

Penyelesaian:

Isu utama berpunca daripada kecacatan logik dalam menukar jam kepada milisaat menggunakan minit dan bukannya jam. Khususnya, kod itu digunakan:

TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
Salin selepas log masuk

sementara ia sepatutnya:

TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
Salin selepas log masuk

Demonstrasi Kod:

Berikut ialah coretan kod yang disemak yang memformat milisaat dengan betul kepada "hh:mm:ss":

String hms = 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)));
Salin selepas log masuk

Kes Ujian:

long millis = 3600000;
String hms = ... // Replace with revised code from above

System.out.println(hms); // Expected output: 01:00:00
Salin selepas log masuk

Selain itu, kod boleh dioptimumkan menggunakan pembahagian modulus bukannya penolakan:

String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
    TimeUnit.MILLISECONDS.toMinutes(millis) % TimeUnit.HOURS.toMinutes(1),
    TimeUnit.MILLISECONDS.toSeconds(millis) % TimeUnit.MINUTES.toSeconds(1));
Salin selepas log masuk

Kedua-dua variasi mencapai pemformatan "hh:mm:ss" yang betul dan memanfaatkan TimeUnit API untuk mengendalikan penukaran dengan lancar.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Millisaat kepada Format \'hh:mm:ss\' dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan