From dee56ed8d52f1d8ee1f89b369561c49e9b3b7c2d Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 23 一月 2026 17:56:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

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

diff --git a/src/main/java/com/ruoyi/common/utils/DateUtils.java b/src/main/java/com/ruoyi/common/utils/DateUtils.java
index 8ff95f1..0fa7e5a 100644
--- a/src/main/java/com/ruoyi/common/utils/DateUtils.java
+++ b/src/main/java/com/ruoyi/common/utils/DateUtils.java
@@ -3,6 +3,11 @@
 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.util.Date;
 import org.apache.commons.lang3.time.DateFormatUtils;
 
@@ -22,7 +27,7 @@
     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",
@@ -36,6 +41,15 @@
     public static Date getNowDate()
     {
         return new Date();
+    }
+
+    public static LocalDate toLocalDate(Date date){
+        if(date == null) return LocalDate.now();
+        // 2. 鎸囧畾鍥哄畾鏃跺尯杞崲锛堝涓滃叓鍖篣TC+8銆乁TC闆舵椂鍖猴級
+        return date.toInstant()
+                .atZone(ZoneId.of("Asia/Shanghai")) // 涓滃叓鍖猴紙鍖椾含/涓婃捣鏃跺尯锛�
+                // .atZone(ZoneId.of("UTC")) // 鍙�夛細UTC闆舵椂鍖�
+                .toLocalDate();
     }
 
     /**
@@ -121,7 +135,7 @@
             return null;
         }
     }
-    
+
     /**
      * 鑾峰彇鏈嶅姟鍣ㄥ惎鍔ㄦ椂闂�
      */
@@ -132,16 +146,28 @@
     }
 
     /**
-     * 璁$畻涓や釜鏃堕棿宸�
+     * 璁$畻鐩稿樊澶╂暟
      */
-    public static String getDatePoor(Date endDate, Date nowDate)
+    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() - nowDate.getTime();
+        long diff = endDate.getTime() - startTime.getTime();
         // 璁$畻宸灏戝ぉ
         long day = diff / nd;
         // 璁$畻宸灏戝皬鏃�
@@ -152,4 +178,23 @@
         // 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());
+    }
 }

--
Gitblit v1.9.3