增加TemporalAccessorUtil.isIn、LocalDateTimeUtil.isIn

This commit is contained in:
Looly 2022-07-17 00:15:14 +08:00
parent f2cde9a860
commit eb9df251d5
3 changed files with 29 additions and 1 deletions

View File

@ -18,7 +18,7 @@
* 【http 】 优化HttpUtil.isHttp判断避免NPEpr#698@Gitee
* 【core 】 修复Dict#containsKey方法没区分大小写问题pr#697@Gitee
* 【core 】 增加比较两个LocalDateTime是否为同一天pr#693@Gitee
* 【core 】 增加TemporalAccessorUtil.isInissue#I5HBL0@Gitee
* 【core 】 增加TemporalAccessorUtil.isIn、LocalDateTimeUtil.isInissue#I5HBL0@Gitee
*
### 🐞Bug修复
* 【core 】 修复CollUtil里面关于可变参数传null造成的crash问题pr#2428@Github

View File

@ -171,6 +171,8 @@ public class LocalDateTimeUtil {
return ((LocalDate) temporalAccessor).atStartOfDay();
} else if(temporalAccessor instanceof Instant){
return LocalDateTime.ofInstant((Instant) temporalAccessor, ZoneId.systemDefault());
} else if(temporalAccessor instanceof ZonedDateTime){
return ((ZonedDateTime)temporalAccessor).toLocalDateTime();
}
return LocalDateTime.of(
@ -595,4 +597,18 @@ public class LocalDateTimeUtil {
public static boolean isSameDay(final LocalDate date1, final LocalDate date2) {
return date1 != null && date2 != null && date1.isEqual(date2);
}
/**
* 当前日期是否在日期指定范围内<br>
* 起始日期和结束日期可以互换
*
* @param date 被检查的日期
* @param beginDate 起始日期包含
* @param endDate 结束日期包含
* @return 是否在范围内
* @since 5.8.5
*/
public static boolean isIn(ChronoLocalDateTime<?> date, ChronoLocalDateTime<?> beginDate, ChronoLocalDateTime<?> endDate){
return TemporalAccessorUtil.isIn(date, beginDate, endDate);
}
}

View File

@ -31,4 +31,16 @@ public class TemporalAccessorUtilTest {
LocalDate.of(2021, 6, 26), "#SSS");
Assert.assertEquals("1624636800000", today2);
}
@Test
public void isInTest(){
final String sourceStr = "2022-04-19 00:00:00";
final String startTimeStr = "2022-04-19 00:00:00";
final String endTimeStr = "2022-04-19 23:59:59";
final boolean between = TemporalAccessorUtil.isIn(
LocalDateTimeUtil.parse(sourceStr, DatePattern.NORM_DATETIME_FORMATTER),
LocalDateTimeUtil.parse(startTimeStr, DatePattern.NORM_DATETIME_FORMATTER),
LocalDateTimeUtil.parse(endTimeStr, DatePattern.NORM_DATETIME_FORMATTER));
Assert.assertTrue(between);
}
}