ManagementFactory.getRuntimeMXBean(). GetUptime() форматирование для отображения дня, часов, минут и секунд
Это мой код для отображения времени работы приложения:
/**
* Gets the uptime of the application since the JVM launch
* @return The uptime in a formatted String (DAYS, MONTHS, MINUTES, SECONDS)
*/
public static String getGameUptime() {
RuntimeMXBean mxBean = ManagementFactory.getRuntimeMXBean();
DateFormat dateFormat = new SimpleDateFormat("dd:HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+0"));
return dateFormat.format(new Date(mxBean.getUptime()));
}
Но когда приложение работает только в течение 3 минут и 50 секунд, оно вернет "01:00:03:50". 01 должен быть 00 в этом случае. Какова причина этого? Как это исправить?
1 ответ
Решение
Попробуй это
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
long uptime = mxBean.getUptime();
String d = uptime / (3600 * 1000 * 24) + ":" + dateFormat.format(uptime);
Обратите внимание, что DateFormat также принимает миллисекунды