diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7b7f1e190..85d618ce3 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,8 @@
* 【extra 】 QrCodeUtil新增SVG格式、Ascii Art字符画格式(pr#763@Gitee)
* 【jwt 】 JWTUtil的parseToken增加空值异常抛出(issue#I5OCQB@Gitee)
* 【extra 】 resource.loader等过期参数替换(issue#2571@Github)
+* 【core 】 添加ObjectUtil的别名工具类ObjUtil
+* 【core 】 扩展LocalDateTimeUtil.isIn方法使用场景(pr#2589@Github)
*
### 🐞Bug修复
* 【http 】 修复https下可能的Patch、Get请求失效问题(issue#I3Z3DH@Gitee)
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java
index 073c4da7d..f2cc32d20 100755
--- a/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java
@@ -598,20 +598,6 @@ public class LocalDateTimeUtil {
return date1 != null && date2 != null && date1.isEqual(date2);
}
- /**
- * 判断当前时间(默认时区)是否在指定范围内
- * 起始时间和结束时间可以互换
- *
- * @param beginDate 起始时间(包含)
- * @param endDate 结束时间(包含)
- * @return 是否在范围内
- * @author FengBaoheng
- * @since 5.8.6
- */
- public static boolean isIn(ChronoLocalDateTime> beginDate, ChronoLocalDateTime> endDate) {
- return TemporalAccessorUtil.isIn(LocalDateTimeUtil.now(), beginDate, endDate);
- }
-
/**
* 当前日期是否在日期指定范围内
* 起始日期和结束日期可以互换
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java
new file mode 100755
index 000000000..5779e27f9
--- /dev/null
+++ b/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java
@@ -0,0 +1,9 @@
+package cn.hutool.core.util;
+
+/**
+ * 对象工具类,同{@link ObjectUtil}
+ * 从6.x开始,将删除ObjectUtil,而使用ObjUtil
+ *
+ */
+public class ObjUtil extends ObjectUtil{
+}
diff --git a/hutool-core/src/test/java/cn/hutool/core/date/LocalDateTimeUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/date/LocalDateTimeUtilTest.java
index 449c31f47..9696bbcb2 100755
--- a/hutool-core/src/test/java/cn/hutool/core/date/LocalDateTimeUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/date/LocalDateTimeUtilTest.java
@@ -11,6 +11,7 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAccessor;
+import java.util.Objects;
public class LocalDateTimeUtilTest {
@@ -21,7 +22,7 @@ public class LocalDateTimeUtilTest {
@Test
public void ofTest() {
- String dateStr = "2020-01-23T12:23:56";
+ final String dateStr = "2020-01-23T12:23:56";
final DateTime dt = DateUtil.parse(dateStr);
LocalDateTime of = LocalDateTimeUtil.of(dt);
@@ -35,25 +36,25 @@ public class LocalDateTimeUtilTest {
@Test
public void parseOffsetTest() {
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2021-07-30T16:27:27+08:00", DateTimeFormatter.ISO_OFFSET_DATE_TIME);
- Assert.assertEquals("2021-07-30T16:27:27", localDateTime.toString());
+ Assert.assertEquals("2021-07-30T16:27:27", Objects.requireNonNull(localDateTime).toString());
}
@Test
public void parseTest() {
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56", DateTimeFormatter.ISO_DATE_TIME);
- Assert.assertEquals("2020-01-23T12:23:56", localDateTime.toString());
+ Assert.assertEquals("2020-01-23T12:23:56", Objects.requireNonNull(localDateTime).toString());
}
@Test
public void parseTest2() {
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23", DatePattern.NORM_DATE_PATTERN);
- Assert.assertEquals("2020-01-23T00:00", localDateTime.toString());
+ Assert.assertEquals("2020-01-23T00:00", Objects.requireNonNull(localDateTime).toString());
}
@Test
public void parseTest3() {
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("12:23:56", DatePattern.NORM_TIME_PATTERN);
- Assert.assertEquals("12:23:56", localDateTime.toLocalTime().toString());
+ Assert.assertEquals("12:23:56", Objects.requireNonNull(localDateTime).toLocalTime().toString());
}
@Test
@@ -64,20 +65,20 @@ public class LocalDateTimeUtilTest {
@Test
public void parseTest5() {
- LocalDateTime localDateTime = LocalDateTimeUtil.parse("19940121183604", "yyyyMMddHHmmss");
- Assert.assertEquals("1994-01-21T18:36:04", localDateTime.toString());
+ final LocalDateTime localDateTime = LocalDateTimeUtil.parse("19940121183604", "yyyyMMddHHmmss");
+ Assert.assertEquals("1994-01-21T18:36:04", Objects.requireNonNull(localDateTime).toString());
}
@Test
public void parseTest6() {
LocalDateTime localDateTime = LocalDateTimeUtil.parse("19940121183604682", "yyyyMMddHHmmssSSS");
- Assert.assertEquals("1994-01-21T18:36:04.682", localDateTime.toString());
+ Assert.assertEquals("1994-01-21T18:36:04.682", Objects.requireNonNull(localDateTime).toString());
localDateTime = LocalDateTimeUtil.parse("1994012118360468", "yyyyMMddHHmmssSS");
- Assert.assertEquals("1994-01-21T18:36:04.680", localDateTime.toString());
+ Assert.assertEquals("1994-01-21T18:36:04.680", Objects.requireNonNull(localDateTime).toString());
localDateTime = LocalDateTimeUtil.parse("199401211836046", "yyyyMMddHHmmssS");
- Assert.assertEquals("1994-01-21T18:36:04.600", localDateTime.toString());
+ Assert.assertEquals("1994-01-21T18:36:04.600", Objects.requireNonNull(localDateTime).toString());
}
@Test
@@ -91,7 +92,7 @@ public class LocalDateTimeUtilTest {
@Test
public void parseSingleMonthAndDayTest() {
- LocalDate localDate = LocalDateTimeUtil.parseDate("2020-1-1", "yyyy-M-d");
+ final LocalDate localDate = LocalDateTimeUtil.parseDate("2020-1-1", "yyyy-M-d");
Assert.assertEquals("2020-01-01", localDate.toString());
}
@@ -139,11 +140,12 @@ public class LocalDateTimeUtilTest {
Assert.assertEquals(365, between.toDays());
}
+ @SuppressWarnings("ConstantConditions")
@Test
public void isIn() {
// 时间范围 8点-9点
- LocalDateTime begin = LocalDateTime.parse("2019-02-02T08:00:00");
- LocalDateTime end = LocalDateTime.parse("2019-02-02T09:00:00");
+ final LocalDateTime begin = LocalDateTime.parse("2019-02-02T08:00:00");
+ final LocalDateTime end = LocalDateTime.parse("2019-02-02T09:00:00");
// 不在时间范围内 用例
Assert.assertFalse(LocalDateTimeUtil.isIn(LocalDateTime.parse("2019-02-02T06:00:00"), begin, end));
@@ -169,10 +171,10 @@ public class LocalDateTimeUtilTest {
Assert.assertTrue(LocalDateTimeUtil.isIn(begin, end, begin, true, true));
// 比较当前时间范围
- LocalDateTime now = LocalDateTime.now();
- Assert.assertTrue(LocalDateTimeUtil.isIn(now.minusHours(1L), now.plusHours(1L)));
- Assert.assertFalse(LocalDateTimeUtil.isIn(now.minusHours(1L), now.minusHours(2L)));
- Assert.assertFalse(LocalDateTimeUtil.isIn(now.plusHours(1L), now.plusHours(2L)));
+ final LocalDateTime now = LocalDateTime.now();
+ Assert.assertTrue(LocalDateTimeUtil.isIn(now, now.minusHours(1L), now.plusHours(1L)));
+ Assert.assertFalse(LocalDateTimeUtil.isIn(now, now.minusHours(1L), now.minusHours(2L)));
+ Assert.assertFalse(LocalDateTimeUtil.isIn(now, now.plusHours(1L), now.plusHours(2L)));
// 异常入参
Assert.assertThrows(IllegalArgumentException.class, () -> LocalDateTimeUtil.isIn(null, begin, end, false, false));
@@ -224,24 +226,24 @@ public class LocalDateTimeUtilTest {
@Test
public void isOverlapTest(){
- LocalDateTime oneStartTime = LocalDateTime.of(2022, 1, 1, 10, 10, 10);
- LocalDateTime oneEndTime = LocalDateTime.of(2022, 1, 1, 11, 10, 10);
+ final LocalDateTime oneStartTime = LocalDateTime.of(2022, 1, 1, 10, 10, 10);
+ final LocalDateTime oneEndTime = LocalDateTime.of(2022, 1, 1, 11, 10, 10);
- LocalDateTime oneStartTime2 = LocalDateTime.of(2022, 1, 1, 11, 20, 10);
- LocalDateTime oneEndTime2 = LocalDateTime.of(2022, 1, 1, 11, 30, 10);
+ final LocalDateTime oneStartTime2 = LocalDateTime.of(2022, 1, 1, 11, 20, 10);
+ final LocalDateTime oneEndTime2 = LocalDateTime.of(2022, 1, 1, 11, 30, 10);
- LocalDateTime oneStartTime3 = LocalDateTime.of(2022, 1, 1, 11, 40, 10);
- LocalDateTime oneEndTime3 = LocalDateTime.of(2022, 1, 1, 11, 50, 10);
+ final LocalDateTime oneStartTime3 = LocalDateTime.of(2022, 1, 1, 11, 40, 10);
+ final LocalDateTime oneEndTime3 = LocalDateTime.of(2022, 1, 1, 11, 50, 10);
//真实请假数据
- LocalDateTime realStartTime = LocalDateTime.of(2022, 1, 1, 11, 49, 10);
- LocalDateTime realEndTime = LocalDateTime.of(2022, 1, 1, 12, 0, 10);
+ final LocalDateTime realStartTime = LocalDateTime.of(2022, 1, 1, 11, 49, 10);
+ final LocalDateTime realEndTime = LocalDateTime.of(2022, 1, 1, 12, 0, 10);
- LocalDateTime realStartTime1 = DateUtil.parseLocalDateTime("2022-03-01 08:00:00");
- LocalDateTime realEndTime1 = DateUtil.parseLocalDateTime("2022-03-01 10:00:00");
+ final LocalDateTime realStartTime1 = DateUtil.parseLocalDateTime("2022-03-01 08:00:00");
+ final LocalDateTime realEndTime1 = DateUtil.parseLocalDateTime("2022-03-01 10:00:00");
- LocalDateTime startTime = DateUtil.parseLocalDateTime("2022-03-23 05:00:00");
- LocalDateTime endTime = DateUtil.parseLocalDateTime("2022-03-23 13:00:00");
+ final LocalDateTime startTime = DateUtil.parseLocalDateTime("2022-03-23 05:00:00");
+ final LocalDateTime endTime = DateUtil.parseLocalDateTime("2022-03-23 13:00:00");
Assert.assertFalse(LocalDateTimeUtil.isOverlap(oneStartTime,oneEndTime,realStartTime,realEndTime));
Assert.assertFalse(LocalDateTimeUtil.isOverlap(oneStartTime2,oneEndTime2,realStartTime,realEndTime));
@@ -253,7 +255,7 @@ public class LocalDateTimeUtilTest {
@Test
public void weekOfYearTest(){
- LocalDate date1 = LocalDate.of(2021, 12, 31);
+ final LocalDate date1 = LocalDate.of(2021, 12, 31);
final int weekOfYear1 = LocalDateTimeUtil.weekOfYear(date1);
Assert.assertEquals(52, weekOfYear1);
@@ -263,7 +265,7 @@ public class LocalDateTimeUtilTest {
@Test
public void weekOfYearTest2(){
- LocalDate date1 = LocalDate.of(2022, 1, 31);
+ final LocalDate date1 = LocalDate.of(2022, 1, 31);
final int weekOfYear1 = LocalDateTimeUtil.weekOfYear(date1);
Assert.assertEquals(5, weekOfYear1);
@@ -273,7 +275,7 @@ public class LocalDateTimeUtilTest {
@Test
public void ofTest2(){
- final Instant instant = DateUtil.parse("2022-02-22").toInstant();
+ final Instant instant = Objects.requireNonNull(DateUtil.parse("2022-02-22")).toInstant();
final LocalDateTime of = LocalDateTimeUtil.of((TemporalAccessor) instant);
Console.log(of);
}