|
|
@@ -2,9 +2,6 @@ package com.nb.core.utils;
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.time.ZoneId;
|
|
|
-import java.time.format.DateTimeFormatter;
|
|
|
import java.util.Date;
|
|
|
|
|
|
/**
|
|
|
@@ -17,13 +14,13 @@ import java.util.Date;
|
|
|
public class DateCompareUtil {
|
|
|
|
|
|
/**
|
|
|
- * 按年月日时分进行比较,忽略秒和毫秒部分,时区为东八区
|
|
|
+ * 按年月日时分秒进行比较,忽略毫秒部分
|
|
|
*
|
|
|
* @param date1 第一个日期
|
|
|
* @param date2 第二个日期
|
|
|
- * @return 如果两个日期的年月日时分相同返回true,否则返回false
|
|
|
+ * @return 如果两个日期的年月日时分秒相同返回true,否则返回false
|
|
|
*/
|
|
|
- public static boolean isSameDateTimeIgnoreSeconds(Date date1, Date date2) {
|
|
|
+ public static boolean isSameDateTimeIgnoreMillis(Date date1, Date date2) {
|
|
|
if (date1 == null && date2 == null) {
|
|
|
return true;
|
|
|
}
|
|
|
@@ -31,13 +28,8 @@ public class DateCompareUtil {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- // 转换为东八区 LocalDateTime
|
|
|
- ZoneId chinaZone = ZoneId.of("Asia/Shanghai");
|
|
|
- LocalDateTime localDateTime1 = date1.toInstant().atZone(chinaZone).toLocalDateTime();
|
|
|
- LocalDateTime localDateTime2 = date2.toInstant().atZone(chinaZone).toLocalDateTime();
|
|
|
-
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
|
|
|
- return localDateTime1.format(formatter).equals(localDateTime2.format(formatter));
|
|
|
+ String format = "yyyy-MM-dd HH:mm:ss";
|
|
|
+ return DateUtil.format(date1, format).equals(DateUtil.format(date2, format));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -55,35 +47,11 @@ public class DateCompareUtil {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- // 转换为东八区进行比较
|
|
|
- ZoneId chinaZone = ZoneId.of("Asia/Shanghai");
|
|
|
- LocalDateTime localDateTime1 = date1.toInstant().atZone(chinaZone).toLocalDateTime();
|
|
|
- LocalDateTime localDateTime2 = date2.toInstant().atZone(chinaZone).toLocalDateTime();
|
|
|
-
|
|
|
- return localDateTime1.toLocalDate().equals(localDateTime2.toLocalDate());
|
|
|
+ return DateUtil.isSameDay(date1, date2);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 按年月日时分秒进行比较,忽略毫秒部分
|
|
|
- *
|
|
|
- * @param date1 第一个日期
|
|
|
- * @param date2 第二个日期
|
|
|
- * @return 如果两个日期的年月日时分秒相同返回true,否则返回false
|
|
|
- */
|
|
|
- public static boolean isSameDateTimeIgnoreMillis(Date date1, Date date2) {
|
|
|
- if (date1 == null && date2 == null) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- if (date1 == null || date2 == null) {
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- String format = "yyyy-MM-dd HH:mm:ss";
|
|
|
- return DateUtil.format(date1, format).equals(DateUtil.format(date2, format));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 按年月日时分秒毫秒进行精确比较,时区为东八区
|
|
|
+ * 按年月日时分秒毫秒进行精确比较
|
|
|
*
|
|
|
* @param date1 第一个日期
|
|
|
* @param date2 第二个日期
|
|
|
@@ -97,24 +65,6 @@ public class DateCompareUtil {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- // 转换为东八区进行比较
|
|
|
- ZoneId chinaZone = ZoneId.of("Asia/Shanghai");
|
|
|
- LocalDateTime localDateTime1 = date1.toInstant().atZone(chinaZone).toLocalDateTime();
|
|
|
- LocalDateTime localDateTime2 = date2.toInstant().atZone(chinaZone).toLocalDateTime();
|
|
|
-
|
|
|
- return localDateTime1.equals(localDateTime2);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 将Date转换为年月日时分字符串形式,时区为东八区
|
|
|
- *
|
|
|
- * @param date 待转换的日期
|
|
|
- * @return 格式为"yyyy-MM-dd HH:mm"的字符串
|
|
|
- */
|
|
|
- public static Date convertToyyyyMMddHHmm(Date date) {
|
|
|
- if (date == null) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- return DateUtil.beginOfMinute(date);
|
|
|
+ return date1.equals(date2);
|
|
|
}
|
|
|
}
|