I want to get the JVM start time and uptime. So far I have done this:
public long getjvmstarttime(){
final long uptime = ManagementFactory.getRuntimeMXBe
Take a look at Pretty Time. It's a library for generating human reabable time strings from timestamps like milliseconds.
Once you have the time in milliseconds you can use the TimeUnit enum to convert it to other time units. Converting to days will just require one call.
long days = TimeUnit.MILLISECONDS.toDays(milliseconds);
Getting the hours will involve another similar call for the total hours, then computing the left over hours after the days are subtracted out.
The code below does the math you need and builds the resulting string:
private static final int SECOND = 1000;
private static final int MINUTE = 60 * SECOND;
private static final int HOUR = 60 * MINUTE;
private static final int DAY = 24 * HOUR;
// TODO: this is the value in ms
long ms = 10304004543l;
StringBuffer text = new StringBuffer("");
if (ms > DAY) {
text.append(ms / DAY).append(" days ");
ms %= DAY;
}
if (ms > HOUR) {
text.append(ms / HOUR).append(" hours ");
ms %= HOUR;
}
if (ms > MINUTE) {
text.append(ms / MINUTE).append(" minutes ");
ms %= MINUTE;
}
if (ms > SECOND) {
text.append(ms / SECOND).append(" seconds ");
ms %= SECOND;
}
text.append(ms + " ms");
System.out.println(text.toString());