From fd7be4e6d2a757fee61a52697c293efd3beb68f1 Mon Sep 17 00:00:00 2001 From: Looly Date: Sun, 4 Sep 2022 22:06:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A9=E5=B1=95LocalDateTimeUtil.isIn?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E4=BD=BF=E7=94=A8=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + .../hutool/core/date/LocalDateTimeUtil.java | 14 ---- .../java/cn/hutool/core/util/ObjUtil.java | 9 +++ .../core/date/LocalDateTimeUtilTest.java | 66 ++++++++++--------- 4 files changed, 45 insertions(+), 46 deletions(-) create mode 100755 hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java 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); }