mitao
2025-01-17 afa0dbb4f54e7244835dd67ec33c3e545f122f71
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java
@@ -1,15 +1,13 @@
package com.ruoyi.common.core.utils;
import org.apache.commons.lang3.time.DateFormatUtils;
import java.lang.management.ManagementFactory;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.*;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang3.time.DateFormatUtils;
/**
 * 时间工具类
@@ -33,8 +31,12 @@
            "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
            "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
    public static void main(String[] args) {
        System.out.println(getNowDate());
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date start = sdf.parse("2021-10-01 10:00:00");
        Date end = sdf.parse("2021-10-01 12:30:00");
        String time = formatDuration(start,end);
        System.out.println(time);
    }
    /**
@@ -74,7 +76,7 @@
    public static final String dateTime(final Date date)
    {
        return parseDateToStr(YYYY_MM_DD, date);
        return parseDateToStr(YYYY_MM_DD_HH_MM_SS, date);
    }
    public static final String parseDateToStr(final String format, final Date date)
@@ -166,6 +168,20 @@
        return day + "天" + hour + "小时" + min + "分钟";
    }
    public static long diffTime(Date startTime, Date endTime){
        // 获取Calendar实例
        Calendar cal1 = Calendar.getInstance();
        Calendar cal2 = Calendar.getInstance();
        // 设置Calendar对象的时间
        cal1.setTime(startTime);
        cal2.setTime(endTime);
        // 获取时间差
        long milliseconds1 = cal1.getTimeInMillis();
        long milliseconds2 = cal2.getTimeInMillis();
        long diff = milliseconds2 - milliseconds1;
        return diff;
    }
    /**
     * 增加 LocalDateTime ==> Date
     */
@@ -184,4 +200,37 @@
        ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
        return Date.from(zdt.toInstant());
    }
    public static String formatDuration(Date start, Date end) {
        long duration = end.getTime() - start.getTime();
        long days = duration / (24 * 60 * 60 * 1000);
        long hours = (duration % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000);
        long minutes = (duration % (60 * 60 * 1000)) / (60 * 1000);
        long seconds = (duration % (60 * 1000)) / 1000;
        StringBuilder sb = new StringBuilder();
        if (days > 0) {
            sb.append(days).append("天");
        }
        if (hours > 0) {
            sb.append(hours).append("小时");
        }
        if (minutes > 0) {
            sb.append(minutes).append("分");
        }
        if (seconds > 0) {
            sb.append(seconds).append("秒");
        }
        return sb.toString();
    }
    public static Date getTodayStartTime() {
        // 获取今天的日期
        LocalDate today = LocalDate.now();
        // 获取当天的开始时间(00:00:00)
        LocalDateTime startOfDay = today.atStartOfDay();
        // 转换为 Date 类型
        return Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
    }
}