2013-10-27 2 views
1

Это мой код для отображения времени бесперебойной работы приложения: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. Какова причина этого? Как это исправить?

ответ

0

Попробуйте

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 принимает миллисекунды, а