自己有时候需要用到,在此记录一下,废话不多说,代码如下
/**
* @description:
* 如果只有50秒,就显示50秒
* 如果有1分钟以上,就显示1分钟XX秒
* 如果有1小时以上,就显示x小时y分钟z秒
* @author: ZhuoJie
* @create: 2021-03-23 19:43
**/
public class FormatTimeUtils {
public static void main(String[] args) {
System.out.println(formatTime(1644475373418L));
}
public static String formatTime(Long ms) {
Integer ss = 1000;
Integer mm = ss * 60;
Integer hh = mm * 60;
Integer dd = hh * 24;
Long day = ms / dd;
Long hour = (ms - day * dd) / hh;
Long minute = (ms - day * dd - hour * hh) / mm;
Long second = (ms - day * dd - hour * hh - minute * mm) / ss;
Long milliSecond = ms - day * dd - hour * hh - minute * mm - second * ss;
StringBuffer sb = new StringBuffer();
if (day > 0) {
sb.append(day + "天");
}
if (hour > 0) {
sb.append(hour + "小时");
}
if (minute > 0) {
sb.append(minute + "分");
}
if (second > 0) {
sb.append(second + "秒");
}
if (milliSecond > 0) {
sb.append(milliSecond + "毫秒");
}
return String.valueOf(sb);
}
}
效果输出当前毫秒时间转换成天时分秒的字符串: