Home > Java > javaTutorial > How Can I Convert Milliseconds to a Human-Readable Time Format in Java?

How Can I Convert Milliseconds to a Human-Readable Time Format in Java?

Barbara Streisand
Release: 2024-12-20 12:28:16
Original
682 people have browsed it

How Can I Convert Milliseconds to a Human-Readable Time Format in Java?

Converting Milliseconds to Human-Readable Time in Java

Accurately measuring elapsed time is crucial in many programming scenarios. The System.currentTimeMillis() method provides a millisecond-based timestamp that corresponds to the current time. However, presenting this timestamp in a format that humans can easily understand requires conversion. This article explores the best methods for converting milliseconds to a human-readable format like "XX mins, XX seconds."

Java's TimeUnit Class

The java.util.concurrent.TimeUnit class offers a convenient way to convert milliseconds to human-readable time units. It provides static methods like toMinutes and toSeconds that perform the necessary calculations. To use this approach, you can write the following code:

String.format("%d min, %d sec", 
    TimeUnit.MILLISECONDS.toMinutes(millis),
    TimeUnit.MILLISECONDS.toSeconds(millis) - 
    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);
Copy after login

Adding Leading Zeros for Single-Digit Values

If you want to ensure that single-digit values are displayed with leading zeros (e.g., "09 mins" instead of "9 mins"), simply use the following code:

String.format("%02d min, %02d sec", 
    TimeUnit.MILLISECONDS.toMinutes(millis),
    TimeUnit.MILLISECONDS.toSeconds(millis) - 
    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);
Copy after login

Custom Calculations without TimeUnit

If TimeUnit is unavailable (e.g., on older Android versions), you can perform the milliseconds-to-time conversion manually using the following equations:

int seconds = (int) (milliseconds / 1000) % 60 ;
int minutes = (int) ((milliseconds / (1000*60)) % 60);
int hours   = (int) ((milliseconds / (1000*60*60)) % 24);
Copy after login

You can then combine these values to create the desired time format.

Conclusion

By leveraging the java.util.concurrent.TimeUnit class or custom calculations, you can easily convert milliseconds to a human-readable format in Java. This allows you to display elapsed time in a manner that is both accurate and easy to understand.

The above is the detailed content of How Can I Convert Milliseconds to a Human-Readable Time Format in Java?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template