From 3807a2754a9ea195be9fb43b6cac06b8293c2fc6 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 11 十二月 2025 18:06:03 +0800
Subject: [PATCH] 工作台

---
 common/src/main/java/com/ycl/common/utils/DateUtils.java |   79 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 75 insertions(+), 4 deletions(-)

diff --git a/common/src/main/java/com/ycl/common/utils/DateUtils.java b/common/src/main/java/com/ycl/common/utils/DateUtils.java
index e6de789..8426dd7 100644
--- a/common/src/main/java/com/ycl/common/utils/DateUtils.java
+++ b/common/src/main/java/com/ycl/common/utils/DateUtils.java
@@ -5,10 +5,8 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.*;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Objects;
-import java.util.Set;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.lang.Nullable;
@@ -38,6 +36,10 @@
     private static String isHoliday = "1-1,1-28,1-29,1-30,1-31,2-1,2-2,2-3,2-4,"
             +"4-4,4-5,4-6,5-1,5-2,5-3,5-4,5-5,5-31,6-1,6-2,10-1,10-2,10-3,"
             +"10-4,10-5,10-6,10-7,10-8";
+
+    // 绾跨▼瀹夊叏鐨勬牸寮忓寲鍣紙鍏ㄥ眬闈欐�侊級
+    private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+    private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm");
 
     /**
      * 鑾峰彇涓や釜鏃堕棿鍐咃紝闄ゅ幓鍛ㄦ湯鍛ㄦ棩浠ュ強娉曞畾鑺傚亣鏃ョ殑 灏忔椂鎬绘暟銆�
@@ -309,4 +311,73 @@
         LocalDateTime of = LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 23, 59, 59);
         return Timestamp.valueOf(of);
     }
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿鎵�鍦ㄦ湀浠界殑寮�濮嬫椂闂达紙褰撴湀1鏃� 00:00:00锛�
+     * @param date 浠绘剰鏃堕棿锛堝彲涓簄ull锛岄粯璁ゅ彇褰撳墠鏃堕棿锛�
+     * @return 褰撴湀寮�濮嬫椂闂�
+     */
+    public static Date getMonthStartTime(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        // 鑻ヤ紶鍏ユ椂闂翠负null锛屼娇鐢ㄥ綋鍓嶆椂闂�
+        if (date != null) {
+            calendar.setTime(date);
+        }
+        // 璁剧疆涓哄綋鏈�1鏃�
+        calendar.set(Calendar.DAY_OF_MONTH, 1);
+        // 璁剧疆涓�00:00:00
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0); // 姣缃�0锛岄伩鍏嶆椂闂村亸宸�
+        return calendar.getTime();
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿鎵�鍦ㄦ湀浠界殑缁撴潫鏃堕棿锛堝綋鏈堟渶鍚庝竴鏃� 23:59:59锛�
+     * @param date 浠绘剰鏃堕棿锛堝彲涓簄ull锛岄粯璁ゅ彇褰撳墠鏃堕棿锛�
+     * @return 褰撴湀缁撴潫鏃堕棿
+     */
+    public static Date getMonthEndTime(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        if (date != null) {
+            calendar.setTime(date);
+        }
+        // 璁剧疆涓哄綋鏈堟渶鍚庝竴澶�
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+        // 璁剧疆涓�23:59:59
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        calendar.set(Calendar.MILLISECOND, 999); // 姣缃�999锛岃鐩栨墍鏈夋绉掓暟
+        return calendar.getTime();
+    }
+
+
+    /**
+     * 鎷嗗垎Date涓哄勾鏈堟棩鍜屾椂鍒嗗瓧绗︿覆
+     * @param date 寰呮媶鍒嗙殑Date锛堝彲涓簄ull锛�
+     * @return Map锛歬ey=date锛堝勾鏈堟棩锛夈�乼ime锛堟椂鍒嗭級锛屽�间负瀵瑰簲瀛楃涓诧紱null杩斿洖绌哄瓧绗︿覆
+     */
+    public static Map<String, String> splitDateToDateAndTime(Date date) {
+        Map<String, String> result = new HashMap<>();
+        if (date == null) {
+            result.put("date", "");
+            result.put("time", "");
+            return result;
+        }
+
+        // Date杞琇ocalDateTime锛堝鐞嗘椂鍖猴級
+        LocalDateTime localDateTime = LocalDateTime.ofInstant(
+                date.toInstant(),
+                ZoneId.systemDefault() // 鐢ㄧ郴缁熼粯璁ゆ椂鍖猴紝閬垮厤鏃跺樊
+        );
+
+        // 鎷嗗垎骞存湀鏃ュ拰鏃跺垎
+        String dateStr = DATE_FORMATTER.format(localDateTime);
+        String timeStr = TIME_FORMATTER.format(localDateTime);
+
+        result.put("date", dateStr);
+        result.put("time", timeStr);
+        return result;
+    }
 }

--
Gitblit v1.8.0