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
Barbara StreisandOriginal
2024-12-20 12:28:16730browse

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))
);

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))
);

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);

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!

Statement:
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