From ad7cbfd8fd19fcce4345a4907c1f059a34c2869b Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 11 十二月 2025 15:49:15 +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