1、DateUtil.compare(Date date1, Date date2, String format) add overload

This commit is contained in:
duandazhi 2021-04-13 16:36:48 +08:00
parent 97e15f8152
commit c0496353d4
2 changed files with 34 additions and 0 deletions

View File

@ -1883,6 +1883,29 @@ public class DateUtil extends CalendarUtil {
return CompareUtil.compare(date1, date2); return CompareUtil.compare(date1, date2);
} }
/**
* {@code null}安全的日期比较并只比较指定格式 {@code null}对象排在末尾, 并指定日期格式
*
*
* @param date1 日期1
* @param date2 日期2
* @param format 日期格式常用格式见 {@link DatePattern}; 允许为空 date1 date2; eg: yyyy-MM-dd
* @return 比较结果如果date1 < date2返回数小于0date1==date2返回0date1 > date2 大于0
* @since 5.6.4
* @author dazer
*/
public static int compare(Date date1, Date date2, String format) {
if (format != null) {
if (date1 != null) {
date1 = parse(format(date1, format), format);
}
if (date2 != null) {
date2 = parse(format(date2, format), format);
}
}
return CompareUtil.compare(date1, date2);
}
/** /**
* 纳秒转毫秒 * 纳秒转毫秒
* *

View File

@ -698,6 +698,17 @@ public class DateUtilTest {
Assert.assertEquals(rangeToList.get(1), DateUtil.parse("2017-01-02")); Assert.assertEquals(rangeToList.get(1), DateUtil.parse("2017-01-02"));
} }
@Test
public void compareTest() {
Date date1 = DateUtil.parse("2021-04-13 23:59:59.999");
Date date2 = DateUtil.parse("2021-04-13 23:10:10");
Assert.assertEquals(1, DateUtil.compare(date1, date2));
Assert.assertEquals(1, DateUtil.compare(date1, date2, DatePattern.NORM_DATETIME_PATTERN));
Assert.assertEquals(0, DateUtil.compare(date1, date2, DatePattern.NORM_DATE_PATTERN));
Assert.assertEquals(0, DateUtil.compare(date1, date2, DatePattern.NORM_DATETIME_MINUTE_PATTERN));
}
@Test @Test
public void yearAndQTest() { public void yearAndQTest() {
String yearAndQuarter = DateUtil.yearAndQuarter(DateUtil.parse("2018-12-01")); String yearAndQuarter = DateUtil.yearAndQuarter(DateUtil.parse("2018-12-01"));