From 0ab9dfd8f122195e4e9f09bd50c59e0a47450bec Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 19 三月 2025 15:50:03 +0800
Subject: [PATCH] fix: resolve merge conflicts in .gitignore

---
 ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java |  387 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 387 insertions(+), 0 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java
new file mode 100644
index 0000000..3df99a9
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java
@@ -0,0 +1,387 @@
+package com.ruoyi.common.utils;
+
+import java.lang.management.ManagementFactory;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.*;
+import java.time.format.DateTimeFormatter;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang3.time.DateFormatUtils;
+
+/**
+ * 时间工具类
+ * 
+ * @author ruoyi
+ */
+public class DateUtils extends org.apache.commons.lang3.time.DateUtils
+{
+    public static String YYYY = "yyyy";
+
+    public static String YYYY_MM = "yyyy-MM";
+
+    public static String YYYY_MM_DD = "yyyy-MM-dd";
+
+    public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
+
+    public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
+
+    private static String[] parsePatterns = {
+            "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",
+            "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
+
+    /**
+     * 获取当前Date型日期
+     * 
+     * @return Date() 当前日期
+     */
+    public static Date getNowDate()
+    {
+        return new Date();
+    }
+
+    /**
+     * 获取当前日期, 默认格式为yyyy-MM-dd
+     * 
+     * @return String
+     */
+    public static String getDate()
+    {
+        return dateTimeNow(YYYY_MM_DD);
+    }
+
+    public static final String getTime()
+    {
+        return dateTimeNow(YYYY_MM_DD_HH_MM_SS);
+    }
+
+    public static final String dateTimeNow()
+    {
+        return dateTimeNow(YYYYMMDDHHMMSS);
+    }
+
+    public static final String dateTimeNow(final String format)
+    {
+        return parseDateToStr(format, new Date());
+    }
+
+    public static final String dateTime(final Date date)
+    {
+        return parseDateToStr(YYYY_MM_DD, date);
+    }
+
+    public static final String parseDateToStr(final String format, final Date date)
+    {
+        return new SimpleDateFormat(format).format(date);
+    }
+
+    public static final Date dateTime(final String format, final String ts)
+    {
+        try
+        {
+            return new SimpleDateFormat(format).parse(ts);
+        }
+        catch (ParseException e)
+        {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * 日期路径 即年/月/日 如2018/08/08
+     */
+    public static final String datePath()
+    {
+        Date now = new Date();
+        return DateFormatUtils.format(now, "yyyy/MM/dd");
+    }
+
+    /**
+     * 日期路径 即年/月/日 如20180808
+     */
+    public static final String dateTime()
+    {
+        Date now = new Date();
+        return DateFormatUtils.format(now, "yyyyMMdd");
+    }
+
+    /**
+     * 日期型字符串转化为日期 格式
+     */
+    public static Date parseDate(Object str)
+    {
+        if (str == null)
+        {
+            return null;
+        }
+        try
+        {
+            return parseDate(str.toString(), parsePatterns);
+        }
+        catch (ParseException e)
+        {
+            return null;
+        }
+    }
+
+    /**
+     * 获取服务器启动时间
+     */
+    public static Date getServerStartDate()
+    {
+        long time = ManagementFactory.getRuntimeMXBean().getStartTime();
+        return new Date(time);
+    }
+
+    /**
+     * 计算相差天数
+     */
+    public static int differentDaysByMillisecond(Date date1, Date date2)
+    {
+        return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24)));
+    }
+
+    /**
+     * 计算时间差
+     *
+     * @param endDate 最后时间
+     * @param startTime 开始时间
+     * @return 时间差(天/小时/分钟)
+     */
+    public static String timeDistance(Date endDate, Date startTime)
+    {
+        long nd = 1000 * 24 * 60 * 60;
+        long nh = 1000 * 60 * 60;
+        long nm = 1000 * 60;
+        // long ns = 1000;
+        // 获得两个时间的毫秒时间差异
+        long diff = endDate.getTime() - startTime.getTime();
+        // 计算差多少天
+        long day = diff / nd;
+        // 计算差多少小时
+        long hour = diff % nd / nh;
+        // 计算差多少分钟
+        long min = diff % nd % nh / nm;
+        // 计算差多少秒//输出结果
+        // long sec = diff % nd % nh % nm / ns;
+        return day + "天" + hour + "小时" + min + "分钟";
+    }
+
+    /**
+     * 增加 LocalDateTime ==> Date
+     */
+    public static Date toDate(LocalDateTime temporalAccessor)
+    {
+        ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault());
+        return Date.from(zdt.toInstant());
+    }
+
+    /**
+     * 增加 LocalDate ==> Date
+     */
+    public static Date toDate(LocalDate temporalAccessor)
+    {
+        LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0));
+        ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
+        return Date.from(zdt.toInstant());
+    }
+
+    /**
+     * 指定日期所在周的周一和周日时间
+     *
+     * @return 结果集
+     */
+    public static Map<String, Date> getWeekDate(Date date) {
+        Map<String, Date> map = new HashMap<>(2);
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
+        cal.setFirstDayOfWeek(Calendar.MONDAY);
+        // 获得当前日期是一个星期的第几天
+        int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
+        if (dayWeek == 1) {
+            dayWeek = 8;
+        }
+        // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
+        cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - dayWeek);
+        Date mondayDate = cal.getTime();
+        cal.add(Calendar.DATE, 4 + cal.getFirstDayOfWeek());
+        Date sundayDate = cal.getTime();
+        map.put("first", mondayDate);
+        map.put("last", sundayDate);
+        return map;
+    }
+
+    /**
+     * 指定日期所在月的第一天/最后一天时间
+     *
+     * @return 结果集
+     */
+    public static Map<String, Date> getMonthDate(Date date) {
+        Map<String, Date> map = new HashMap<>(2);
+        Calendar cal = Calendar.getInstance();
+        //设置指定日期
+        cal.setTime(date);
+        //获取当月第一天日期
+        int first = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        cal.set(Calendar.DAY_OF_MONTH, first);
+        Date firstDay = cal.getTime();
+        map.put("first", firstDay);
+        //获取当月最后一天日期
+        int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(Calendar.DAY_OF_MONTH, last);
+        Date lastDay = cal.getTime();
+        map.put("last", lastDay);
+        return map;
+    }
+
+    /**
+     * 获取日期逻辑中所在的季度数
+     *
+     * @param date 当前日期
+     * @return 第几季度
+     */
+    public static int getQuarterOfYear(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        return calendar.get(Calendar.MONTH) / 3 + 1;
+    }
+    /**
+     * 指定日期所在季度的第一天/最后一天时间
+     *
+     * @return 结果集
+     */
+    public static Map<String, Date> getQuarterDate(Date date) {
+        Map<String, Date> map = new HashMap<>(2);
+
+        int quarter = getQuarterOfYear(date);
+        int year = dateToLocalDateTime(date).getYear();
+
+        int startMonth = (quarter - 1) * 3;
+        // 根据月获取开始时间
+        Calendar cal = Calendar.getInstance();
+        cal.set(Calendar.YEAR, year);
+        cal.set(Calendar.MONTH, startMonth);
+        cal.set(Calendar.DAY_OF_MONTH, 1);
+        cal.set(Calendar.HOUR, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        Date first = cal.getTime();
+        map.put("first", first);
+
+        int lastMonth = quarter * 3 - 1;
+        // 根据月获取结束时间
+        cal = Calendar.getInstance();
+        cal.set(Calendar.YEAR, year);
+        cal.set(Calendar.MONTH, lastMonth);
+        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
+        cal.set(Calendar.HOUR, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        Date last = cal.getTime();
+        map.put("last", last);
+
+        return map;
+    }
+
+    /**
+     * 指定日期所在年的第一天/最后一天时间
+     *
+     * @return 结果集
+     */
+    public static Map<String, Date> getYearDate(Date date) {
+        Map<String, Date> map = new HashMap<>(2);
+        Calendar cal = Calendar.getInstance();
+        //设置指定日期
+        cal.setTime(date);
+        //获取本年第一天日期
+        int first = cal.getActualMinimum(Calendar.DAY_OF_YEAR);
+        cal.set(Calendar.DAY_OF_YEAR, first);
+        Date firstDay = cal.getTime();
+        map.put("first", firstDay);
+        //获取本年最后一天日期
+        int last = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
+        cal.set(Calendar.DAY_OF_YEAR, last);
+        Date lastDay = cal.getTime();
+        map.put("last", lastDay);
+        return map;
+    }
+
+    /**
+     * 获取当天的00:00:00
+     *
+     * @return
+     */
+    public static LocalDateTime getDayStart(LocalDateTime time) {
+        return time.with(LocalTime.MIN);
+    }
+
+
+    /**
+     * 获取当天的23:59:59
+     *
+     * @return
+     */
+    public static LocalDateTime getDayEnd(LocalDateTime time) {
+        return time.with(LocalTime.MAX);
+    }
+
+    /**
+     * localdatetime转为字符串
+     *
+     * @param time localdatetime
+     * @return 字符串
+     */
+    public static String localDateTimeToString(LocalDateTime time) {
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        return df.format(time);
+    }
+    /**
+     * localdatetime转为字符串
+     *
+     * @param time localdatetime
+     * @return 字符串
+     */
+    public static String localDateTimeToStringYear(LocalDateTime time) {
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
+        return df.format(time);
+    }
+
+    /**
+     * Date转为LocalDateTime
+     *
+     * @param date 日期
+     * @return LocalDateTime
+     */
+    public static LocalDateTime dateToLocalDateTime(Date date) {
+        Instant instant = date.toInstant();
+        ZoneId zoneId = ZoneId.systemDefault();
+        return instant.atZone(zoneId).toLocalDateTime();
+    }
+
+    /**
+     * localdate转为字符串
+     *
+     * @param time localdate
+     * @return 字符串
+     */
+    public static String localDateToString(LocalDate time) {
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        return df.format(time);
+    }
+
+    /**
+     * 字符串转为localdate
+     *
+     * @param time localdate
+     * @return 字符串
+     */
+    public static LocalDate stringToLocalDate(String time) {
+        return LocalDate.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+    }
+
+}

--
Gitblit v1.7.1