java:秒转换为天,小时,分钟,秒,毫秒
public class DateFormatUtils {
public static void main(String[] args) {
BigDecimal seconds1 = BigDecimal.valueOf(333.33); // 333.33 秒
// 转换并打印结果
System.out.println("Seconds: " + seconds1);
System.out.println("Formatted Time: " + formatSecondsTime(seconds1));
}
/**
* 格式化秒单位为 毫秒 秒 分 时 天
* @param seconds
* @return
*/
public static String formatSecondsTime(BigDecimal seconds) {
if (seconds == null || seconds.compareTo(BigDecimal.ZERO) == 0) {
return "0毫秒";
}
BigDecimal milliseconds = seconds.multiply(BigDecimal.valueOf(1000)).setScale(0, RoundingMode.DOWN);
BigDecimal ss = BigDecimal.valueOf(1000);
BigDecimal mi = ss.multiply(BigDecimal.valueOf(60));
BigDecimal hh = mi.multiply(BigDecimal.valueOf(60));
BigDecimal dd = hh.multiply(BigDecimal.valueOf(24));
BigDecimal day = milliseconds.divide(dd, 0, RoundingMode.DOWN);
milliseconds = milliseconds.remainder(dd);
BigDecimal hour = milliseconds.divide(hh, 0, RoundingMode.DOWN);
milliseconds = milliseconds.remainder(hh);
BigDecimal minute = milliseconds.divide(mi, 0, RoundingMode.DOWN);
milliseconds = milliseconds.remainder(mi);
BigDecimal second = milliseconds.divide(ss, 0, RoundingMode.DOWN);
milliseconds = milliseconds.remainder(ss);
StringBuilder sb = new StringBuilder();
if (day.compareTo(BigDecimal.ZERO) > 0) {
sb.append(day).append("天");
}
if (hour.compareTo(BigDecimal.ZERO) > 0) {
sb.append(hour).append("时");
}
if (minute.compareTo(BigDecimal.ZERO) > 0) {
sb.append(minute).append("分");
}
if (second.compareTo(BigDecimal.ZERO) > 0) {
sb.append(second).append("秒");
}
if (milliseconds.compareTo(BigDecimal.ZERO) > 0) {
sb.append(milliseconds).append("毫秒");
}
return sb.toString();
}
}
结果: