rk
17 小时以前 44ff584e5dcb3a066d70e4eaaf9f098440a1a5f7
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -16,7 +16,6 @@
import cn.hutool.core.date.DateUnit;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
/**
 * 日期工具类
 * @author: jiangping
@@ -178,6 +177,26 @@
            m_intervalday = m_intervalday / 1000 / 60 / 60;// 计算所得的天数
            return m_intervalday + 1;
        } catch (Exception e) {
            return Integer.MIN_VALUE;
        }
    }
    /**
     * 获取2个时间之间的分钟数
     * @param fromDate
     * @param toDate
     * @return
     */
    public static long getBetweenMin(Date fromDate, Date toDate) {
        long m_intervalday = 0;// 初始化时间间隔的值为0
        // 使用的时间格式为yyyy-MM-dd
        try {
            m_intervalday = toDate.getTime() - fromDate.getTime();// 计算所得为微秒数
            m_intervalday = m_intervalday / 1000 / 60;// 计算所得的分钟
            return m_intervalday;
        } catch (Exception e) {
            return Integer.MIN_VALUE;
        }
@@ -384,6 +403,25 @@
        }
        return list;
    }
    public static List<String> getBeforDaysByFormat(Date currentDate,Integer days,String format){
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(currentDate);
        Date endDate = currentDate; // 获取当前日期
        calendar.add(Calendar.DAY_OF_YEAR, -days); // 往前推7天
        Date startDate = calendar.getTime(); // 获取推算后的日期
        List<String> list = new ArrayList<>();
        while (startDate.before(endDate)) {
            calendar.add(Calendar.DAY_OF_YEAR, 1); // 获取下一天日期
            startDate = calendar.getTime();
            list.add(DateUtil.dateToString(startDate,format));
            System.out.println(DateUtil.dateToString(startDate,format));
        }
        return list;
    }
    public static List<Date> getDateListBeforDays(Date currentDate,Integer days){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
@@ -1733,11 +1771,22 @@
    }
    public static Date getFirstThisYearDate() {
        try {
            return sdfShort.parse( getNowShortDate().substring(0, 4) + "0101");
            return sdfLong.parse( getNowShortDate().substring(0, 4) + "-01-01");
        } catch (Exception e) {
            return null;
        }
    }
    public static Date getFirstThisMonthDate() {
        try {
            return sdfLong.parse( getNowFormateDate().substring(0, 7) + "-01");
        } catch (Exception e) {
            return null;
        }
    }
    public static String getFirstDayCurrentMonth() {
        try {
            return getDateLong(new Date()).substring(0, 7) + "-01";
@@ -2055,7 +2104,7 @@
     */
    public static String getCurrDateTime() {
        Timestamp date = new Timestamp(System.currentTimeMillis());
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return formatter.format(date);
    }
@@ -2486,6 +2535,16 @@
        }
        try {
            return sdfLongTimePlus.parse(strDate);
        } catch (Exception ex) {
            return null;
        }
    }
    public static Date getDateFromShortString(String strDate) {
        if (StringUtils.isEmpty(strDate)) {
          return  null;
        }
        try {
            return sdfLong.parse(strDate);
        } catch (Exception ex) {
            return null;
        }
@@ -2931,8 +2990,9 @@
//            Date date1 = getISO8601DateByStr("2024-06-14T08:46:36.014+08:00");
//            System.out.println(DateUtil.afterMinutesDate(-5));
            System.out.println(DateUtil.getISO8601DateByStr("2025-11-12T09:13:00.000Z"));
            System.out.println(getPlusTime2(DateUtil.addMonthToDate(new Date(),-1)));
//            System.out.println(getPlusTime2(DateUtil.addMonthToDate(new Date(),-1)));
//            System.out.println(DateUtil.getBeforMonthStr(new Date(),12));
//            List<Date> list =getThisMonthDateList();
@@ -3072,7 +3132,6 @@
        String temp = sdf.format(date);
        String firstDayInMoth = "";
        firstDayInMoth = temp + "-01";
        return firstDayInMoth;
    }
@@ -3097,6 +3156,26 @@
        return weekDays[w];
    }
    /**
     * 获取当前日期是星期几<br>
     *
     * @param dt
     * @return 当前日期是星期几
     */
    public static String getWeekZhouOfDate(Date dt) {
        String[] weekDays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };
        TimeZone china = TimeZone.getTimeZone("Asia/Shanghai");
        Calendar cal = Calendar.getInstance(china);
        cal.setTime(dt);
        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
        if (w < 0)
        {
            w = 0;
        }
        return weekDays[w];
    }
    /**
     * 获取星期数
     *
@@ -3544,6 +3623,13 @@
        return getDayEndTime(cal.getTime());
    }
    public static String getDateStrOfUTCStr(String utcDate){
        ZonedDateTime utcTime = ZonedDateTime.parse(utcDate,
                DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssX").withZone(ZoneId.of("UTC")));
        // 转换为北京时间
        ZonedDateTime beijingTime = utcTime.withZoneSameInstant(ZoneId.of("Asia/Shanghai"));
        return beijingTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
    // 获取当天的开始时间
    public static java.util.Date getDayBegin() {
        Calendar cal = new GregorianCalendar();