java如何格式化时间差?比如我要记录某个任务运行了多长时间,可能是几秒,也可能长达几天可以用两个System.currentTimeMillis();相减得到时间差的毫秒数,但是如何得到具体时间差?比...
java 如何格式化时间差?比如我要记录某个任务运行了多长时间,可能是几秒,也可能长达几天
可以用两个System.currentTimeMillis(); 相减得到时间差的毫秒数,但是如何得到具体时间差?比如:
12秒
3分18秒
6小时5分2秒
2天19小时3分44秒
我自己解决了,java方法如下:
private static String formatTimeDuration(long duration) {
// 毫秒
long ssec = duration % 1000;
// 秒
long sec = (duration / 1000) % 60;
// 分钟
long min = (duration / 1000 / 60) % 60;
// 小时
long hour = (duration / 1000 / 60 / 60) % 24;
// 天
long day = duration / 1000 / 60 / 60 / 24;
if (day > 0) {
return day + "天" + hour + "小时" + min + "分钟" + sec + "秒";
}
if (hour > 0) {
return hour + "小时" + min + "分钟" + sec + "秒";
}
if (min > 0) {
return min + "分钟" + sec + "秒";
}
return sec + "秒";
}
结果:
0秒
2分钟53秒
762天1小时20分30秒
展开