From d22bbb827940050d4df2bf3fb16dae79eba91d4e Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 12 十一月 2024 18:45:15 +0800
Subject: [PATCH] 批量审核bug,离线时间点回显
---
ycl-server/src/main/java/com/ycl/utils/DateUtils.java | 121 +++++++++++++++++++++++++++++++++++++++-
1 files changed, 117 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..d1e6846 100644
--- a/ycl-server/src/main/java/com/ycl/utils/DateUtils.java
+++ b/ycl-server/src/main/java/com/ycl/utils/DateUtils.java
@@ -1,16 +1,21 @@
package com.ycl.utils;
import org.apache.commons.lang3.time.DateFormatUtils;
+import org.glassfish.jaxb.core.v2.TODO;
+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 +31,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 +47,7 @@
/**
* 鑾峰彇褰撳墠鏃ユ湡, 榛樿鏍煎紡涓簓yyy-MM-dd
- *
+ *
* @return String
*/
public static String getDate()
@@ -142,6 +147,14 @@
}
/**
+ * 璁$畻鐩稿樊灏忔椂
+ */
+ public static int differentHoursByMillisecond(Date date1, Date date2)
+ {
+ return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600)));
+ }
+
+ /**
* 璁$畻鏃堕棿宸�
*
* @param endDate 鏈�鍚庢椂闂�
@@ -185,4 +198,104 @@
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);
+ }
+
+ /**
+ * 鑾峰彇鏌愭湀寮�濮嬫棩鏈�
+ */
+ //TODO:鏍¢獙閫昏緫鏄惁姝g‘
+ public static String getMouthStart(@Nullable Date date) {
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+ Calendar c = Calendar.getInstance();
+ if (date != null) {
+ c.setTime(date); // 濡傛灉date涓嶄负null锛屽垯璁剧疆Calendar鐨勬棩鏈熶负date
+ }
+ c.set(Calendar.DAY_OF_MONTH,1);
+ return df.format(c.getTime());
+ }
+
+ /**
+ * 鑾峰彇鏌愭湀缁撴潫鏃ユ湡
+ */
+ public static String getMouthEnd(@Nullable Date date) {
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+ Calendar c = Calendar.getInstance();
+ if (date != null) {
+ c.setTime(date); // 濡傛灉date涓嶄负null锛屽垯璁剧疆Calendar鐨勬棩鏈熶负date
+ }
+ c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
+ return df.format(c.getTime());
+ }
+ /**
+ * 鑾峰彇鎸囧畾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;
+ }
+
+
+ public static Date getDay(int year,int month,int day) {
+ // 鑾峰彇Calendar瀹炰緥锛岄粯璁や娇鐢ㄥ綋鍓嶆椂鍖哄拰璇█鐜
+ Calendar calendar = Calendar.getInstance();
+ // 娓呴櫎Calendar涓殑鎵�鏈夊瓧娈靛�硷紝浠ラ伩鍏嶅畠浠褰撳墠鏃ユ湡鏃堕棿鏈夊奖鍝�
+ calendar.clear();
+ // 璁剧疆骞翠唤銆佹湀浠斤紙娉ㄦ剰锛氭湀浠芥槸浠�0寮�濮嬬殑锛屾墍浠�8鏈堟槸7锛夈�佹棩鏈�
+ calendar.set(Calendar.YEAR, year);
+ calendar.set(Calendar.MONTH, month);
+ calendar.set(Calendar.DAY_OF_MONTH, day);
+ // Calendar.getTime()鏂规硶杩斿洖涓�涓〃绀烘Calendar鏃堕棿鍊肩殑Date瀵硅薄
+ Date date = calendar.getTime();
+ return date;
+ }
}
--
Gitblit v1.8.0