如何将毫秒转换成小时和天?

dpiehjr4  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(427)

我想得到jvm的开始时间和正常运行时间。到目前为止,我已经做到了:

public long getjvmstarttime(){
    final long uptime = ManagementFactory.getRuntimeMXBean().getStartTime();
    return uptime;
}

public long getjvmuptime(){
    final long uptime = ManagementFactory.getRuntimeMXBean().getUptime();
    return uptime;
}

但我得到的时间是毫秒。如何将时间转换为天和小时。我想用这种格式显示毫秒:3天8小时32分钟。是否有内部java方法可以转换毫秒数?

xiozqbni

xiozqbni1#

看看美好的时光。它是一个库,用于从时间戳(如毫秒)生成可重新读取的时间字符串。

clj7thdc

clj7thdc2#

下面的代码执行所需的数学运算并生成结果字符串:

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

yhuiod9q3#

一旦获得了以毫秒为单位的时间,就可以使用timeunit枚举将其转换为其他时间单位。转换为天只需要一个电话。

long days = TimeUnit.MILLISECONDS.toDays(milliseconds);

获取小时数需要对总小时数进行另一次类似的调用,然后在减去天数后计算剩余的小时数。

相关问题