Reputation: 174
Converting a long millisecond value in to the format 00:00:00.000. I can't have hours wrapping around. So I cant' use DateFormat
.
long millis = 3600000;
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));
//Output: 01:00:00
This code excludes milliseconds.
Upvotes: 0
Views: 1421
Reputation:
You can try this code:
long millis = 3600000;
String hms = String.format("%02d:%02d:%02d.%03d", TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) % TimeUnit.HOURS.toMinutes(1),
TimeUnit.MILLISECONDS.toSeconds(millis) % TimeUnit.MINUTES.toSeconds(1),
millis % 1000);
It extends the format-string by ".%03d"
and adds the milliseconds (millis % 1000
) to the parameter-list. Tested on java v1.8.0_91 (Oracle JRE).
Upvotes: 1