From 4ac87bb3275667c02bc60012ebb9fc1eeab6da5b Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 02 八月 2024 17:12:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ycl-server/src/main/java/com/ycl/utils/DateUtils.java | 81 ++++++++++++++++++++++++++++++++++++++--
1 files changed, 77 insertions(+), 4 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/utils/DateUtils.java b/ycl-server/src/main/java/com/ycl/utils/DateUtils.java
index 8c4baf0..a27708e 100644
--- a/ycl-server/src/main/java/com/ycl/utils/DateUtils.java
+++ b/ycl-server/src/main/java/com/ycl/utils/DateUtils.java
@@ -2,15 +2,19 @@
import org.apache.commons.lang3.time.DateFormatUtils;
+import javax.annotation.Nullable;
import java.lang.management.ManagementFactory;
+import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.*;
+import java.util.Calendar;
import java.util.Date;
+import java.util.Objects;
/**
* 鏃堕棿宸ュ叿绫�
- *
+ *
* @author ruoyi
*/
public class DateUtils extends org.apache.commons.lang3.time.DateUtils
@@ -26,13 +30,13 @@
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",
"yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
/**
* 鑾峰彇褰撳墠Date鍨嬫棩鏈�
- *
+ *
* @return Date() 褰撳墠鏃ユ湡
*/
public static Date getNowDate()
@@ -42,7 +46,7 @@
/**
* 鑾峰彇褰撳墠鏃ユ湡, 榛樿鏍煎紡涓簓yyy-MM-dd
- *
+ *
* @return String
*/
public static String getDate()
@@ -142,6 +146,14 @@
}
/**
+ * 璁$畻鐩稿樊灏忔椂
+ */
+ public static int differentHoursByMillisecond(Date date1, Date date2)
+ {
+ return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600)));
+ }
+
+ /**
* 璁$畻鏃堕棿宸�
*
* @param endDate 鏈�鍚庢椂闂�
@@ -185,4 +197,65 @@
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
return Date.from(zdt.toInstant());
}
+
+
+ /**
+ * 鑾峰彇鏌愬ぉ鐨勫紑濮嬫椂闂�
+ *
+ * @param date
+ * @return 2023-01-01 00:00:00
+ */
+ public static Date getDayStart(@Nullable Date date) {
+ if (Objects.isNull(date)) {
+ date = new Date();
+ }
+ LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.of("GMT+8"));
+ LocalDateTime of = LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 0, 0, 0);
+ return Timestamp.valueOf(of);
+ }
+
+ /**
+ * 鑾峰彇鏌愬ぉ鐨勭粨鏉熸椂闂�
+ *
+ * @param date
+ * @return 2023-01-01 23:59:59
+ */
+ public static Date getDayEnd(@Nullable Date date) {
+ if (Objects.isNull(date)) {
+ date = new Date();
+ }
+ LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
+ LocalDateTime of = LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 23, 59, 59);
+ return Timestamp.valueOf(of);
+ }
+
+ /**
+ * 鑾峰彇鎸囧畾Calendar鐨勫搴﹀紑濮嬫棩鏈�
+ * @param calendar 鏃ュ巻
+ * @return 瀛e害绗竴澶�
+ */
+ public static Calendar getQuarterStart(Calendar calendar) {
+ Calendar quarterStart = (Calendar) calendar.clone();
+ // 璁剧疆涓哄綋鍓嶅搴︾殑绗竴涓湀鐨勭涓�澶�
+ quarterStart.set(Calendar.DAY_OF_MONTH, 1);
+ int month = quarterStart.get(Calendar.MONTH);
+ quarterStart.set(Calendar.MONTH, (month / 3) * 3);
+ return quarterStart;
+ }
+
+ /**
+ * 鑾峰彇鎸囧畾Calendar鐨勫搴︾粨鏉熸棩鏈�
+ * @param calendar 鏃ュ巻
+ * @return 瀛e害鏈�鍚庝竴澶�
+ */
+ public static Calendar getQuarterEnd(Calendar calendar) {
+ Calendar quarterEnd = getQuarterStart(calendar);
+ // 灏嗘湀浠借缃负涓嬩竴涓搴︾殑绗竴涓湀
+ quarterEnd.add(Calendar.MONTH, 3);
+ // 璁剧疆涓洪偅涓湀鐨勬渶鍚庝竴澶�
+ quarterEnd.add(Calendar.DAY_OF_MONTH, -1);
+ return quarterEnd;
+ }
+
+
}
--
Gitblit v1.8.0