From c45de2b7f4cc854fed62ed7024a3df858ff2afd3 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 12 Dec 2023 13:34:54 +0800 Subject: [PATCH] =?UTF-8?q?DateUtil.parse=E6=94=AF=E6=8C=81=E6=AF=AB?= =?UTF-8?q?=E7=A7=92=E6=97=B6=E9=97=B4=E6=88=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + .../src/main/java/cn/hutool/core/date/DateUtil.java | 3 +++ .../cn/hutool/core/annotation/TestIssueI8CLBJ.java | 2 +- .../test/java/cn/hutool/core/date/DateUtilTest.java | 11 +++++++++-- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb03c53cf..6925b203c 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ * 【core 】 修复CharSequenceUtil注释和引用,避免循环引用 * 【extra 】 SpringUtil增加getProperty重载(pr#1122@Gitee) * 【core 】 FileTypeUtil增加null判断(issue#3419@Github) +* 【core 】 DateUtil.parse支持毫秒时间戳(issue#I8NMP7@Gitee) ### 🐞Bug修复 * 【core 】 修复LocalDateTime#parseDate未判断空问题问题(issue#I8FN7F@Gitee) diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java index 864a14437..91badecb4 100755 --- a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java @@ -981,6 +981,9 @@ public class DateUtil extends CalendarUtil { return parse(dateStr, DatePattern.PURE_DATE_FORMAT); } else if (length == DatePattern.PURE_TIME_PATTERN.length()) { return parse(dateStr, DatePattern.PURE_TIME_FORMAT); + }else if(length == 13){ + // 时间戳 + return date(NumberUtil.parseLong(dateStr)); } } else if (ReUtil.isMatch(PatternPool.TIME, dateStr)) { // HH:mm:ss 或者 HH:mm 时间格式匹配单独解析 diff --git a/hutool-core/src/test/java/cn/hutool/core/annotation/TestIssueI8CLBJ.java b/hutool-core/src/test/java/cn/hutool/core/annotation/TestIssueI8CLBJ.java index 04c2a9267..fd80af15d 100644 --- a/hutool-core/src/test/java/cn/hutool/core/annotation/TestIssueI8CLBJ.java +++ b/hutool-core/src/test/java/cn/hutool/core/annotation/TestIssueI8CLBJ.java @@ -30,7 +30,7 @@ public class TestIssueI8CLBJ { Thread thread = new Thread(() -> { try { String valueFieldName = annotation.valueFieldName(); - System.out.println("valueFieldName:" + valueFieldName); + //Console.log("valueFieldName:" + valueFieldName); } catch (Exception e) { e.printStackTrace(); } diff --git a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java index 776615120..02c72ae41 100755 --- a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java @@ -1126,8 +1126,8 @@ public class DateUtilTest { @Test public void isLastDayTest() { - DateTime dateTime = DateUtil.parse("2022-09-30"); - int dayOfMonth = DateUtil.getLastDayOfMonth(dateTime); + final DateTime dateTime = DateUtil.parse("2022-09-30"); + final int dayOfMonth = DateUtil.getLastDayOfMonth(dateTime); Assert.assertEquals(dayOfMonth, dateTime.dayOfMonth()); Assert.assertTrue("not is last day of this month !!", DateUtil.isLastDayOfMonth(dateTime)); } @@ -1167,4 +1167,11 @@ public class DateUtilTest { Assert.assertNotNull(parse); Assert.assertEquals("2019-10-22 09:56:03", parse.toString()); } + + @Test + public void issueI8NMP7Test() { + final String str = "1702262524444"; + final DateTime parse = DateUtil.parse(str); + Assert.assertEquals("2023-12-11 10:42:04", Objects.requireNonNull(parse).toString()); + } }