From a621066525cd841f1804d9c60fbdee92364e146c Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 30 Jul 2025 19:00:23 +0800 Subject: [PATCH] add test --- .../cn/hutool/v7/core/date/DateUtilTest.java | 351 +++++++++--------- 1 file changed, 180 insertions(+), 171 deletions(-) diff --git a/hutool-core/src/test/java/cn/hutool/v7/core/date/DateUtilTest.java b/hutool-core/src/test/java/cn/hutool/v7/core/date/DateUtilTest.java index 361baf325..039bc04ab 100644 --- a/hutool-core/src/test/java/cn/hutool/v7/core/date/DateUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/v7/core/date/DateUtilTest.java @@ -29,6 +29,8 @@ import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.*; +import static org.junit.jupiter.api.Assertions.assertEquals; + /** * 时间工具单元测试
* 此单元测试依赖时区为中国+08:00 @@ -73,15 +75,15 @@ public class DateUtilTest { final Date date = DateUtil.parse(dateStr); final String format = DateUtil.format(date, "yyyy/MM/dd"); - Assertions.assertEquals("2017/03/01", format); + assertEquals("2017/03/01", format); // 常用格式的格式化 final String formatDate = DateUtil.formatDate(date); - Assertions.assertEquals("2017-03-01", formatDate); + assertEquals("2017-03-01", formatDate); final String formatDateTime = DateUtil.formatDateTime(date); - Assertions.assertEquals("2017-03-01 00:00:00", formatDateTime); + assertEquals("2017-03-01 00:00:00", formatDateTime); final String formatTime = DateUtil.formatTime(date); - Assertions.assertEquals("00:00:00", formatTime); + assertEquals("00:00:00", formatTime); } @Test @@ -90,10 +92,10 @@ public class DateUtilTest { final Date date = DateUtil.parse(dateStr); final String format = DateUtil.format(date, "#sss"); - Assertions.assertEquals("1488297600", format); + assertEquals("1488297600", format); final DateTime parse = DateUtil.parse(format, "#sss"); - Assertions.assertEquals(date, parse); + assertEquals(date, parse); } @Test @@ -102,10 +104,10 @@ public class DateUtilTest { final Date date = DateUtil.parse(dateStr); final String format = DateUtil.format(date, "#SSS"); - Assertions.assertEquals("1488297600000", format); + assertEquals("1488297600000", format); final DateTime parse = DateUtil.parse(format, "#SSS"); - Assertions.assertEquals(date, parse); + assertEquals(date, parse); } @Test @@ -115,16 +117,16 @@ public class DateUtilTest { // 一天的开始 final Date beginOfDay = DateUtil.beginOfDay(date); - Assertions.assertEquals("2017-03-01 00:00:00", beginOfDay.toString()); + assertEquals("2017-03-01 00:00:00", beginOfDay.toString()); // 一天的结束 final Date endOfDay = DateUtil.endOfDay(date, false); - Assertions.assertEquals("2017-03-01 23:59:59", endOfDay.toString()); + assertEquals("2017-03-01 23:59:59", endOfDay.toString()); } @Test public void endOfDayTest() { final Date parse = DateUtil.parse("2020-05-31 00:00:00"); - Assertions.assertEquals("2020-05-31 23:59:59", DateUtil.endOfDay(parse, false).toString()); + assertEquals("2020-05-31 23:59:59", DateUtil.endOfDay(parse, false).toString()); } @Test @@ -132,7 +134,7 @@ public class DateUtilTest { final String dateStr2 = "2020-02-29 12:59:34"; final Date date2 = DateUtil.parse(dateStr2); final DateTime dateTime = DateUtil.truncate(date2, DateField.MINUTE); - Assertions.assertEquals("2020-02-29 12:59:00", dateTime.toString()); + assertEquals("2020-02-29 12:59:00", dateTime.toString()); } @Test @@ -142,10 +144,10 @@ public class DateUtilTest { DateTime dateTime = DateUtil.ceiling(date2, DateField.MINUTE, false); - Assertions.assertEquals("2020-02-29 12:59:59.999", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); + assertEquals("2020-02-29 12:59:59.999", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); dateTime = DateUtil.ceiling(date2, DateField.MINUTE, true); - Assertions.assertEquals("2020-02-29 12:59:59.000", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); + assertEquals("2020-02-29 12:59:59.000", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); } @Test @@ -155,10 +157,10 @@ public class DateUtilTest { DateTime dateTime = DateUtil.ceiling(date2, DateField.DAY_OF_MONTH, false); - Assertions.assertEquals("2020-02-29 23:59:59.999", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); + assertEquals("2020-02-29 23:59:59.999", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); dateTime = DateUtil.ceiling(date2, DateField.DAY_OF_MONTH, true); - Assertions.assertEquals("2020-02-29 23:59:59.000", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); + assertEquals("2020-02-29 23:59:59.000", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); } @Test @@ -169,18 +171,18 @@ public class DateUtilTest { // 一周的开始 final Date beginOfWeek = DateUtil.beginOfWeek(date); - Assertions.assertEquals("2017-02-27 00:00:00", beginOfWeek.toString()); + assertEquals("2017-02-27 00:00:00", beginOfWeek.toString()); // 一周的结束 final Date endOfWeek = DateUtil.endOfWeek(date, true, false); - Assertions.assertEquals("2017-03-05 23:59:59", endOfWeek.toString()); + assertEquals("2017-03-05 23:59:59", endOfWeek.toString()); final Calendar calendar = CalendarUtil.calendar(date); // 一周的开始 final Calendar begin = CalendarUtil.beginOfWeek(calendar); - Assertions.assertEquals("2017-02-27 00:00:00", DateUtil.date(begin).toString()); + assertEquals("2017-02-27 00:00:00", DateUtil.date(begin).toString()); // 一周的结束 final Calendar end = CalendarUtil.endOfWeek(calendar, true, false); - Assertions.assertEquals("2017-03-05 23:59:59", DateUtil.date(end).toString()); + assertEquals("2017-03-05 23:59:59", DateUtil.date(end).toString()); } @Test @@ -189,11 +191,11 @@ public class DateUtilTest { final DateTime date = DateUtil.parse(beginStr); final Calendar calendar = Objects.requireNonNull(date).toCalendar(); final Calendar begin = CalendarUtil.beginOfWeek(calendar, false); - Assertions.assertEquals("2020-03-08 00:00:00", DateUtil.date(begin).toString()); + assertEquals("2020-03-08 00:00:00", DateUtil.date(begin).toString()); final Calendar calendar2 = date.toCalendar(); final Calendar end = CalendarUtil.endOfWeek(calendar2, false, false); - Assertions.assertEquals("2020-03-14 23:59:59", DateUtil.date(end).toString()); + assertEquals("2020-03-14 23:59:59", DateUtil.date(end).toString()); } @Test @@ -202,19 +204,19 @@ public class DateUtilTest { final Date date = DateUtil.parse(dateStr); final Date newDate = DateUtil.offset(date, DateField.DAY_OF_MONTH, 2); - Assertions.assertEquals("2017-03-03 22:33:23", newDate.toString()); + assertEquals("2017-03-03 22:33:23", newDate.toString()); // 偏移天 final DateTime newDate2 = DateUtil.offsetDay(date, 3); - Assertions.assertEquals("2017-03-04 22:33:23", newDate2.toString()); + assertEquals("2017-03-04 22:33:23", newDate2.toString()); // 偏移小时 final DateTime newDate3 = DateUtil.offsetHour(date, -3); - Assertions.assertEquals("2017-03-01 19:33:23", newDate3.toString()); + assertEquals("2017-03-01 19:33:23", newDate3.toString()); // 偏移月 final DateTime offsetMonth = DateUtil.offsetMonth(date, -1); - Assertions.assertEquals("2017-02-01 22:33:23", offsetMonth.toString()); + assertEquals("2017-02-01 22:33:23", offsetMonth.toString()); } @Test @@ -224,10 +226,10 @@ public class DateUtilTest { for (int i = 0; i < 4; i++) { list.add(DateUtil.offsetMonth(st, i)); } - Assertions.assertEquals("2018-05-31 00:00:00", list.get(0).toString()); - Assertions.assertEquals("2018-06-30 00:00:00", list.get(1).toString()); - Assertions.assertEquals("2018-07-31 00:00:00", list.get(2).toString()); - Assertions.assertEquals("2018-08-31 00:00:00", list.get(3).toString()); + assertEquals("2018-05-31 00:00:00", list.get(0).toString()); + assertEquals("2018-06-30 00:00:00", list.get(1).toString()); + assertEquals("2018-07-31 00:00:00", list.get(2).toString()); + assertEquals("2018-08-31 00:00:00", list.get(3).toString()); } @Test @@ -240,75 +242,75 @@ public class DateUtilTest { // 相差月 long betweenMonth = DateUtil.betweenMonth(date1, date2, false); - Assertions.assertEquals(1, betweenMonth);// 相差一个月 + assertEquals(1, betweenMonth);// 相差一个月 // 反向 betweenMonth = DateUtil.betweenMonth(date2, date1, false); - Assertions.assertEquals(1, betweenMonth);// 相差一个月 + assertEquals(1, betweenMonth);// 相差一个月 // 相差天 long betweenDay = DateUtil.between(date1, date2, DateUnit.DAY); - Assertions.assertEquals(31, betweenDay);// 相差一个月,31天 + assertEquals(31, betweenDay);// 相差一个月,31天 // 反向 betweenDay = DateUtil.between(date2, date1, DateUnit.DAY); - Assertions.assertEquals(31, betweenDay);// 相差一个月,31天 + assertEquals(31, betweenDay);// 相差一个月,31天 // 相差小时 long betweenHour = DateUtil.between(date1, date2, DateUnit.HOUR); - Assertions.assertEquals(745, betweenHour); + assertEquals(745, betweenHour); // 反向 betweenHour = DateUtil.between(date2, date1, DateUnit.HOUR); - Assertions.assertEquals(745, betweenHour); + assertEquals(745, betweenHour); // 相差分 long betweenMinute = DateUtil.between(date1, date2, DateUnit.MINUTE); - Assertions.assertEquals(44721, betweenMinute); + assertEquals(44721, betweenMinute); // 反向 betweenMinute = DateUtil.between(date2, date1, DateUnit.MINUTE); - Assertions.assertEquals(44721, betweenMinute); + assertEquals(44721, betweenMinute); // 相差秒 long betweenSecond = DateUtil.between(date1, date2, DateUnit.SECOND); - Assertions.assertEquals(2683311, betweenSecond); + assertEquals(2683311, betweenSecond); // 反向 betweenSecond = DateUtil.between(date2, date1, DateUnit.SECOND); - Assertions.assertEquals(2683311, betweenSecond); + assertEquals(2683311, betweenSecond); // 相差秒 long betweenMS = DateUtil.between(date1, date2, DateUnit.MS); - Assertions.assertEquals(2683311000L, betweenMS); + assertEquals(2683311000L, betweenMS); // 反向 betweenMS = DateUtil.between(date2, date1, DateUnit.MS); - Assertions.assertEquals(2683311000L, betweenMS); + assertEquals(2683311000L, betweenMS); } @Test public void betweenTest2() { final long between = DateUtil.between(DateUtil.parse("2019-05-06 02:15:00"), DateUtil.parse("2019-05-06 02:20:00"), DateUnit.HOUR); - Assertions.assertEquals(0, between); + assertEquals(0, between); } @Test public void betweenTest3() { final long between = DateUtil.between(DateUtil.parse("2020-03-31 23:59:59"), DateUtil.parse("2020-04-01 00:00:00"), DateUnit.SECOND); - Assertions.assertEquals(1, between); + assertEquals(1, between); } @Test public void formatChineseDateTest() { String formatChineseDate = DateUtil.formatChineseDate(DateUtil.parse("2018-02-24"), true, false); - Assertions.assertEquals("二〇一八年二月二十四日", formatChineseDate); + assertEquals("二〇一八年二月二十四日", formatChineseDate); formatChineseDate = DateUtil.formatChineseDate(DateUtil.parse("2018-02-14"), true, false); - Assertions.assertEquals("二〇一八年二月十四日", formatChineseDate); + assertEquals("二〇一八年二月十四日", formatChineseDate); } @Test public void formatChineseDateTimeTest() { String formatChineseDateTime = DateUtil.formatChineseDate(DateUtil.parse("2018-02-24 12:13:14"), true, true); - Assertions.assertEquals("二〇一八年二月二十四日十二时十三分十四秒", formatChineseDateTime); + assertEquals("二〇一八年二月二十四日十二时十三分十四秒", formatChineseDateTime); formatChineseDateTime = DateUtil.formatChineseDate(DateUtil.parse("2022-01-18 12:00:00"), true, true); - Assertions.assertEquals("二〇二二年一月十八日十二时零分零秒", formatChineseDateTime); + assertEquals("二〇二二年一月十八日十二时零分零秒", formatChineseDateTime); } @Test @@ -321,14 +323,14 @@ public class DateUtilTest { final long between = DateUtil.between(date1, date2, DateUnit.MS); final String formatBetween = DateUtil.formatBetween(between, BetweenFormatter.Level.MINUTE); - Assertions.assertEquals("31天1小时21分", formatBetween); + assertEquals("31天1小时21分", formatBetween); } @Test public void currentTest() { final long current = DateUtil.current(); final String currentStr = String.valueOf(current); - Assertions.assertEquals(13, currentStr.length()); + assertEquals(13, currentStr.length()); final long currentNano = DateUtil.current(); final String currentNanoStr = String.valueOf(currentNano); @@ -339,35 +341,35 @@ public class DateUtilTest { public void weekOfYearTest() { // 第一周周日 final int weekOfYear1 = DateUtil.weekOfYear(DateUtil.date(DateUtil.parse("2016-01-03").getTime())); - Assertions.assertEquals(1, weekOfYear1); + assertEquals(1, weekOfYear1); // 第二周周四 final int weekOfYear2 = DateUtil.weekOfYear(DateUtil.parse("2016-01-07")); - Assertions.assertEquals(2, weekOfYear2); + assertEquals(2, weekOfYear2); } @Test public void timeToSecondTest() { int second = DateUtil.timeToSecond("00:01:40"); - Assertions.assertEquals(100, second); + assertEquals(100, second); second = DateUtil.timeToSecond("00:00:40"); - Assertions.assertEquals(40, second); + assertEquals(40, second); second = DateUtil.timeToSecond("01:00:00"); - Assertions.assertEquals(3600, second); + assertEquals(3600, second); second = DateUtil.timeToSecond("00:00:00"); - Assertions.assertEquals(0, second); + assertEquals(0, second); } @Test public void secondToTimeTest() { String time = DateUtil.secondToTime(3600); - Assertions.assertEquals("01:00:00", time); + assertEquals("01:00:00", time); time = DateUtil.secondToTime(3800); - Assertions.assertEquals("01:03:20", time); + assertEquals("01:03:20", time); time = DateUtil.secondToTime(0); - Assertions.assertEquals("00:00:00", time); + assertEquals("00:00:00", time); time = DateUtil.secondToTime(30); - Assertions.assertEquals("00:00:30", time); + assertEquals("00:00:30", time); } @Test @@ -376,7 +378,7 @@ public class DateUtilTest { final String s2 = "55:00:50"; final int i = DateUtil.timeToSecond(s1) + DateUtil.timeToSecond(s2); final String s = DateUtil.secondToTime(i); - Assertions.assertEquals("110:03:08", s); + assertEquals("110:03:08", s); } @Test @@ -386,7 +388,7 @@ public class DateUtilTest { final Date birthDate = DateUtil.parse(birthday, "yyMMdd"); // 获取出生年(完全表现形式,如:2010) final int sYear = DateUtil.year(birthDate); - Assertions.assertEquals(1970, sYear); + assertEquals(1970, sYear); } @Test @@ -394,13 +396,13 @@ public class DateUtilTest { final String dateStr = "2018-10-10 12:11:11"; final Date date = DateUtil.parse(dateStr); final String format = DateUtil.format(date, DateFormatPool.NORM_DATETIME_PATTERN); - Assertions.assertEquals(dateStr, format); + assertEquals(dateStr, format); } @Test public void parseTest4() { final String ymd = DateUtil.parse("2019-3-21 12:20:15", "yyyy-MM-dd").toString(DateFormatPool.PURE_DATE_PATTERN); - Assertions.assertEquals("20190321", ymd); + assertEquals("20190321", ymd); } @Test @@ -408,33 +410,33 @@ public class DateUtilTest { // 测试时间解析 //noinspection ConstantConditions String time = DateUtil.parse("22:12:12").toString(DateFormatPool.NORM_TIME_FORMAT); - Assertions.assertEquals("22:12:12", time); + assertEquals("22:12:12", time); //noinspection ConstantConditions time = DateUtil.parse("2:12:12").toString(DateFormatPool.NORM_TIME_FORMAT); - Assertions.assertEquals("02:12:12", time); + assertEquals("02:12:12", time); //noinspection ConstantConditions time = DateUtil.parse("2:2:12").toString(DateFormatPool.NORM_TIME_FORMAT); - Assertions.assertEquals("02:02:12", time); + assertEquals("02:02:12", time); //noinspection ConstantConditions time = DateUtil.parse("2:2:1").toString(DateFormatPool.NORM_TIME_FORMAT); - Assertions.assertEquals("02:02:01", time); + assertEquals("02:02:01", time); //noinspection ConstantConditions time = DateUtil.parse("22:2:1").toString(DateFormatPool.NORM_TIME_FORMAT); - Assertions.assertEquals("22:02:01", time); + assertEquals("22:02:01", time); //noinspection ConstantConditions time = DateUtil.parse("2:22:1").toString(DateFormatPool.NORM_TIME_FORMAT); - Assertions.assertEquals("02:22:01", time); + assertEquals("02:22:01", time); // 测试两位时间解析 //noinspection ConstantConditions time = DateUtil.parse("2:22").toString(DateFormatPool.NORM_TIME_FORMAT); - Assertions.assertEquals("02:22:00", time); + assertEquals("02:22:00", time); //noinspection ConstantConditions time = DateUtil.parse("12:22").toString(DateFormatPool.NORM_TIME_FORMAT); - Assertions.assertEquals("12:22:00", time); + assertEquals("12:22:00", time); //noinspection ConstantConditions time = DateUtil.parse("12:2").toString(DateFormatPool.NORM_TIME_FORMAT); - Assertions.assertEquals("12:02:00", time); + assertEquals("12:02:00", time); } @@ -443,7 +445,7 @@ public class DateUtilTest { final String str = "Tue Jun 4 16:25:15 +0800 2019"; final DateTime dateTime = DateUtil.parse(str); assert dateTime != null; - Assertions.assertEquals("2019-06-04 16:25:15", dateTime.toString()); + assertEquals("2019-06-04 16:25:15", dateTime.toString()); } @Test @@ -451,12 +453,12 @@ public class DateUtilTest { String str = "2019-06-01T19:45:43.000 +0800"; DateTime dateTime = DateUtil.parse(str); assert dateTime != null; - Assertions.assertEquals("2019-06-01 19:45:43", dateTime.toString()); + assertEquals("2019-06-01 19:45:43", dateTime.toString()); str = "2019-06-01T19:45:43 +08:00"; dateTime = DateUtil.parse(str); assert dateTime != null; - Assertions.assertEquals("2019-06-01 19:45:43", dateTime.toString()); + assertEquals("2019-06-01 19:45:43", dateTime.toString()); } @Test @@ -464,7 +466,7 @@ public class DateUtilTest { final String str = "2020-06-28T02:14:13.000Z"; final DateTime dateTime = DateUtil.parse(str); assert dateTime != null; - Assertions.assertEquals("2020-06-28 10:14:13", dateTime.toString()); + assertEquals("2020-06-28 10:14:13", dateTime.toString()); } /** @@ -475,22 +477,22 @@ public class DateUtilTest { String str = "2020-02-06 01:58:00.000020"; DateTime dateTime = DateUtil.parse(str); Assertions.assertNotNull(dateTime); - Assertions.assertEquals("2020-02-06 01:58:00.000", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); + assertEquals("2020-02-06 01:58:00.000", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); str = "2020-02-06 01:58:00.00002"; dateTime = DateUtil.parse(str); Assertions.assertNotNull(dateTime); - Assertions.assertEquals("2020-02-06 01:58:00.000", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); + assertEquals("2020-02-06 01:58:00.000", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); str = "2020-02-06 01:58:00.111000"; dateTime = DateUtil.parse(str); Assertions.assertNotNull(dateTime); - Assertions.assertEquals("2020-02-06 01:58:00.111", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); + assertEquals("2020-02-06 01:58:00.111", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); str = "2020-02-06 01:58:00.111"; dateTime = DateUtil.parse(str); Assertions.assertNotNull(dateTime); - Assertions.assertEquals("2020-02-06 01:58:00.111", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); + assertEquals("2020-02-06 01:58:00.111", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN)); } /** @@ -508,12 +510,12 @@ public class DateUtilTest { String str = "2019-06-01T19:45:43+08:00"; DateTime dateTime = DateUtil.parse(str); assert dateTime != null; - Assertions.assertEquals("2019-06-01 19:45:43", dateTime.toString()); + assertEquals("2019-06-01 19:45:43", dateTime.toString()); str = "2019-06-01T19:45:43 +08:00"; dateTime = DateUtil.parse(str); assert dateTime != null; - Assertions.assertEquals("2019-06-01 19:45:43", dateTime.toString()); + assertEquals("2019-06-01 19:45:43", dateTime.toString()); } @Test @@ -522,10 +524,10 @@ public class DateUtilTest { final String str = "2019-09-17T13:26:17.948Z"; final DateTime dateTime = DateUtil.parse(str); assert dateTime != null; - Assertions.assertEquals("2019-09-17 21:26:17", dateTime.toString()); + assertEquals("2019-09-17 21:26:17", dateTime.toString()); final DateTime offset = DateUtil.offsetHour(dateTime, 8); - Assertions.assertEquals("2019-09-18 05:26:17", offset.toString()); + assertEquals("2019-09-18 05:26:17", offset.toString()); } @Test @@ -533,7 +535,7 @@ public class DateUtilTest { final String dateStr = "2018-4-10"; final Date date = DateUtil.parse(dateStr); final String format = DateUtil.format(date, DateFormatPool.NORM_DATE_PATTERN); - Assertions.assertEquals("2018-04-10", format); + assertEquals("2018-04-10", format); } @Test @@ -547,9 +549,9 @@ public class DateUtilTest { final DateTime dt2 = DateUtil.parse(dateStr2); final DateTime dt3 = DateUtil.parse(dateStr3); final DateTime dt4 = DateUtil.parse(dateStr4); - Assertions.assertEquals(dt1, dt2); - Assertions.assertEquals(dt2, dt3); - Assertions.assertEquals(dt3, dt4); + assertEquals(dt1, dt2); + assertEquals(dt2, dt3); + assertEquals(dt3, dt4); } @Test @@ -563,9 +565,9 @@ public class DateUtilTest { final DateTime dt2 = DateUtil.parse(dateStr2); final DateTime dt3 = DateUtil.parse(dateStr3); final DateTime dt4 = DateUtil.parse(dateStr4); - Assertions.assertEquals(dt1, dt2); - Assertions.assertEquals(dt2, dt3); - Assertions.assertEquals(dt3, dt4); + assertEquals(dt1, dt2); + assertEquals(dt2, dt3); + assertEquals(dt3, dt4); } @Test @@ -579,9 +581,9 @@ public class DateUtilTest { final DateTime dt2 = DateUtil.parse(dateStr2); final DateTime dt3 = DateUtil.parse(dateStr3); final DateTime dt4 = DateUtil.parse(dateStr4); - Assertions.assertEquals(dt1, dt2); - Assertions.assertEquals(dt2, dt3); - Assertions.assertEquals(dt3, dt4); + assertEquals(dt1, dt2); + assertEquals(dt2, dt3); + assertEquals(dt3, dt4); } @Test @@ -591,7 +593,7 @@ public class DateUtilTest { final DateTime dt1 = DateUtil.parse(dateStr1); final DateTime dt2 = DateUtil.parse(dateStr2); - Assertions.assertEquals(dt1, dt2); + assertEquals(dt1, dt2); } @Test @@ -601,7 +603,7 @@ public class DateUtilTest { final DateTime dt1 = DateUtil.parse(dateStr1); final DateTime dt2 = DateUtil.parse(dateStr2); - Assertions.assertEquals(dt1, dt2); + assertEquals(dt1, dt2); } @Test @@ -611,68 +613,68 @@ public class DateUtilTest { // parse方法支持UTC格式测试 final DateTime dt2 = DateUtil.parse(dateStr1); - Assertions.assertEquals(dt, dt2); + assertEquals(dt, dt2); // 默认使用Pattern对应的时区,即UTC时区 String dateStr = Objects.requireNonNull(dt).toString(); - Assertions.assertEquals("2018-09-13 13:34:31", dateStr); + assertEquals("2018-09-13 13:34:31", dateStr); // 使用当前(上海)时区 dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00")); - Assertions.assertEquals("2018-09-13 13:34:31", dateStr); + assertEquals("2018-09-13 13:34:31", dateStr); dateStr1 = "2018-09-13T13:34:32+0800"; dt = DateUtil.parse(dateStr1); dateStr = Objects.requireNonNull(dt).toString(TimeZone.getTimeZone("GMT+8:00")); - Assertions.assertEquals("2018-09-13 13:34:32", dateStr); + assertEquals("2018-09-13 13:34:32", dateStr); dateStr1 = "2018-09-13T13:34:33+08:00"; dt = DateUtil.parse(dateStr1); dateStr = Objects.requireNonNull(dt).toString(TimeZone.getTimeZone("GMT+8:00")); - Assertions.assertEquals("2018-09-13 13:34:33", dateStr); + assertEquals("2018-09-13 13:34:33", dateStr); dateStr1 = "2018-09-13T13:34:34+0800"; dt = DateUtil.parse(dateStr1); assert dt != null; dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00")); - Assertions.assertEquals("2018-09-13 13:34:34", dateStr); + assertEquals("2018-09-13 13:34:34", dateStr); dateStr1 = "2018-09-13T13:34:35+08:00"; dt = DateUtil.parse(dateStr1); assert dt != null; dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00")); - Assertions.assertEquals("2018-09-13 13:34:35", dateStr); + assertEquals("2018-09-13 13:34:35", dateStr); dateStr1 = "2018-09-13T13:34:36.999+0800"; dt = DateUtil.parse(dateStr1); final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DateFormatPool.NORM_DATETIME_MS_PATTERN); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); dateStr = Objects.requireNonNull(dt).toString(simpleDateFormat); - Assertions.assertEquals("2018-09-13 13:34:36.999", dateStr); + assertEquals("2018-09-13 13:34:36.999", dateStr); dateStr1 = "2018-09-13T13:34:37.999+08:00"; dt = DateUtil.parse(dateStr1); dateStr = Objects.requireNonNull(dt).toString(simpleDateFormat); - Assertions.assertEquals("2018-09-13 13:34:37.999", dateStr); + assertEquals("2018-09-13 13:34:37.999", dateStr); dateStr1 = "2018-09-13T13:34:38.999+0800"; dt = DateUtil.parse(dateStr1); assert dt != null; dateStr = dt.toString(simpleDateFormat); - Assertions.assertEquals("2018-09-13 13:34:38.999", dateStr); + assertEquals("2018-09-13 13:34:38.999", dateStr); dateStr1 = "2018-09-13T13:34:39.999+08:00"; dt = DateUtil.parse(dateStr1); assert dt != null; dateStr = dt.toString(simpleDateFormat); - Assertions.assertEquals("2018-09-13 13:34:39.999", dateStr); + assertEquals("2018-09-13 13:34:39.999", dateStr); // 使用UTC时区 dateStr1 = "2018-09-13T13:34:39.99"; dt = DateUtil.parse(dateStr1); assert dt != null; dateStr = dt.toString(); - Assertions.assertEquals("2018-09-13 13:34:39", dateStr); + assertEquals("2018-09-13 13:34:39", dateStr); } @Test @@ -681,15 +683,15 @@ public class DateUtilTest { // 检查不同毫秒长度都可以正常匹配 String utcTime = "2021-03-30T12:56:51.3Z"; DateTime parse = DateUtil.parse(utcTime); - Assertions.assertEquals("2021-03-30 20:56:51", Objects.requireNonNull(parse).toString()); + assertEquals("2021-03-30 20:56:51", Objects.requireNonNull(parse).toString()); utcTime = "2021-03-30T12:56:51.34Z"; parse = DateUtil.parse(utcTime); - Assertions.assertEquals("2021-03-30 20:56:51", Objects.requireNonNull(parse).toString()); + assertEquals("2021-03-30 20:56:51", Objects.requireNonNull(parse).toString()); utcTime = "2021-03-30T12:56:51.345Z"; parse = DateUtil.parse(utcTime); - Assertions.assertEquals("2021-03-30 20:56:51", Objects.requireNonNull(parse).toString()); + assertEquals("2021-03-30 20:56:51", Objects.requireNonNull(parse).toString()); } @Test @@ -698,7 +700,7 @@ public class DateUtilTest { final String dateStr = "2022-08-13T09:30"; final DateTime dateTime = DateUtil.parse(dateStr); Assertions.assertNotNull(dateTime); - Assertions.assertEquals("2022-08-13 09:30:00", dateTime.toString()); + assertEquals("2022-08-13 09:30:00", dateTime.toString()); } @Test @@ -711,8 +713,8 @@ public class DateUtilTest { final DateTime parse = DateUtil.parse(dateStr, sdf); final DateTime dateTime = DateUtil.parse(dateStr); - Assertions.assertEquals("2009-09-16 11:26:23", dateTime.toString()); - Assertions.assertEquals(parse, dateTime); + assertEquals("2009-09-16 11:26:23", dateTime.toString()); + assertEquals(parse, dateTime); } @Test @@ -726,21 +728,21 @@ public class DateUtilTest { final FastDateFormat fdf = FastDateFormat.getInstance(DateFormatPool.JDK_DATETIME_PATTERN, TimeZone.getTimeZone("America/Chicago"), Locale.US); final DateTime parse2 = DateUtil.parse(dateStr, fdf); - Assertions.assertEquals(parse, parse2); + assertEquals(parse, parse2); } @Test public void parseJDkTest() { final String dateStr = "Thu May 16 17:57:18 GMT+08:00 2019"; final DateTime time = DateUtil.parse(dateStr); - Assertions.assertEquals("2019-05-16 17:57:18", Objects.requireNonNull(time).toString()); + assertEquals("2019-05-16 17:57:18", Objects.requireNonNull(time).toString()); } @Test public void parseISOTest() { final String dateStr = "2020-04-23T02:31:00.000Z"; final DateTime time = DateUtil.parse(dateStr); - Assertions.assertEquals("2020-04-23 10:31:00", Objects.requireNonNull(time).toString()); + assertEquals("2020-04-23 10:31:00", Objects.requireNonNull(time).toString()); } @Test @@ -748,7 +750,7 @@ public class DateUtilTest { final DateTime date = DateUtil.now(); date.setField(DateField.YEAR, 2019); final DateTime endOfYear = DateUtil.endOfYear(date, false); - Assertions.assertEquals("2019-12-31 23:59:59", endOfYear.toString()); + assertEquals("2019-12-31 23:59:59", endOfYear.toString()); } @Test @@ -756,7 +758,7 @@ public class DateUtilTest { final Date date = DateUtil.endOfQuarter( DateUtil.parse("2020-05-31 00:00:00"), false); - Assertions.assertEquals("2020-06-30 23:59:59", DateUtil.format(date, "yyyy-MM-dd HH:mm:ss")); + assertEquals("2020-06-30 23:59:59", DateUtil.format(date, "yyyy-MM-dd HH:mm:ss")); } @Test @@ -765,21 +767,21 @@ public class DateUtilTest { final DateTime now = DateUtil.parse("2019-09-15 13:00"); final DateTime startOfWeek = DateUtil.beginOfWeek(now); - Assertions.assertEquals("2019-09-09 00:00:00", startOfWeek.toString()); + assertEquals("2019-09-09 00:00:00", startOfWeek.toString()); final DateTime endOfWeek = DateUtil.endOfWeek(now, true, false); - Assertions.assertEquals("2019-09-15 23:59:59", endOfWeek.toString()); + assertEquals("2019-09-15 23:59:59", endOfWeek.toString()); final long between = DateUtil.between(endOfWeek, startOfWeek, DateUnit.DAY); // 周一和周日相距6天 - Assertions.assertEquals(6, between); + assertEquals(6, between); } @Test public void dayOfWeekTest() { final int dayOfWeek = DateUtil.dayOfWeek(DateUtil.parse("2018-03-07")); - Assertions.assertEquals(Calendar.WEDNESDAY, dayOfWeek); + assertEquals(Calendar.WEDNESDAY, dayOfWeek); final Week week = DateUtil.dayOfWeekEnum(DateUtil.parse("2018-03-07")); - Assertions.assertEquals(Week.WEDNESDAY, week); + assertEquals(Week.WEDNESDAY, week); } @Test @@ -787,28 +789,28 @@ public class DateUtilTest { final Date date1 = DateUtil.parse("2021-04-13 23:59:59.999"); final Date date2 = DateUtil.parse("2021-04-13 23:59:10"); - Assertions.assertEquals(1, DateUtil.compare(date1, date2)); - Assertions.assertEquals(1, DateUtil.compare(date1, date2, DateFormatPool.NORM_DATETIME_PATTERN)); - Assertions.assertEquals(0, DateUtil.compare(date1, date2, DateFormatPool.NORM_DATE_PATTERN)); - Assertions.assertEquals(0, DateUtil.compare(date1, date2, DateFormatPool.NORM_DATETIME_MINUTE_PATTERN)); + assertEquals(1, DateUtil.compare(date1, date2)); + assertEquals(1, DateUtil.compare(date1, date2, DateFormatPool.NORM_DATETIME_PATTERN)); + assertEquals(0, DateUtil.compare(date1, date2, DateFormatPool.NORM_DATE_PATTERN)); + assertEquals(0, DateUtil.compare(date1, date2, DateFormatPool.NORM_DATETIME_MINUTE_PATTERN)); final Date date11 = DateUtil.parse("2021-04-13 23:59:59.999"); final Date date22 = DateUtil.parse("2021-04-11 23:10:10"); - Assertions.assertEquals(0, DateUtil.compare(date11, date22, DateFormatPool.NORM_MONTH_PATTERN)); + assertEquals(0, DateUtil.compare(date11, date22, DateFormatPool.NORM_MONTH_PATTERN)); } @Test public void formatHttpDateTest() { final String formatHttpDate = DateUtil.formatHttpDate(DateUtil.parse("2019-01-02 22:32:01")); - Assertions.assertEquals("Wed, 02 Jan 2019 14:32:01 GMT", formatHttpDate); + assertEquals("Wed, 02 Jan 2019 14:32:01 GMT", formatHttpDate); } @Test public void toInstantTest() { final LocalDateTime localDateTime = LocalDateTime.parse("2017-05-06T08:30:00", DateTimeFormatter.ISO_DATE_TIME); Instant instant = DateUtil.toInstant(localDateTime); - Assertions.assertEquals("2017-05-06T00:30:00Z", instant.toString()); + assertEquals("2017-05-06T00:30:00Z", instant.toString()); final LocalDate localDate = localDateTime.toLocalDate(); instant = DateUtil.toInstant(localDate); @@ -824,12 +826,12 @@ public class DateUtilTest { //LocalDateTime ==> date final LocalDateTime localDateTime = LocalDateTime.parse("2017-05-06T08:30:00", DateTimeFormatter.ISO_DATE_TIME); final DateTime date = DateUtil.date(localDateTime); - Assertions.assertEquals("2017-05-06 08:30:00", date.toString()); + assertEquals("2017-05-06 08:30:00", date.toString()); //LocalDate ==> date final LocalDate localDate = localDateTime.toLocalDate(); final DateTime date2 = DateUtil.date(localDate); - Assertions.assertEquals("2017-05-06", + assertEquals("2017-05-06", DateUtil.format(date2, DateFormatPool.NORM_DATE_PATTERN)); } @@ -838,7 +840,7 @@ public class DateUtilTest { // 测试负数日期 final long dateLong = -1497600000; final DateTime date = DateUtil.date(dateLong); - Assertions.assertEquals("1969-12-15 00:00:00", date.toString()); + assertEquals("1969-12-15 00:00:00", date.toString()); } @Test @@ -847,7 +849,7 @@ public class DateUtilTest { final String d2 = "2018-02-28"; final int age = DateUtil.age(DateUtil.parse(d1), DateUtil.parse(d2)); // issue#I6E6ZG,法定生日当天不算年龄,从第二天开始计算 - Assertions.assertEquals(17, age); + assertEquals(17, age); } @Test @@ -867,7 +869,7 @@ public class DateUtilTest { final String d2 = "2000-02-29"; final int age = DateUtil.age(DateUtil.parse(d1), DateUtil.parse(d2)); // issue#I6E6ZG,法定生日当天不算年龄,从第二天开始计算 - Assertions.assertEquals(2, age); + assertEquals(2, age); } @Test @@ -878,7 +880,7 @@ public class DateUtilTest { final String d2 = "2000-02-29"; final int age = DateUtil.age(DateUtil.parse(d1), DateUtil.parse(d2)); // issue#I6E6ZG,法定生日当天不算年龄,从第二天开始计算 - Assertions.assertEquals(1, age); + assertEquals(1, age); } @Test @@ -887,12 +889,12 @@ public class DateUtilTest { final String strDate = "2019-12-01 17:02:30"; LocalDateTime ldt = TimeUtil.parseByISO(strDate); String strDate1 = DateUtil.formatLocalDateTime(ldt); - Assertions.assertEquals(strDate, strDate1); + assertEquals(strDate, strDate1); final String strDate2 = "2019-12-01 17:02:30.111"; ldt = TimeUtil.parse(strDate2, DateFormatPool.NORM_DATETIME_MS_PATTERN); strDate1 = DateUtil.format(ldt, DateFormatPool.NORM_DATETIME_PATTERN); - Assertions.assertEquals(strDate, strDate1); + assertEquals(strDate, strDate1); } @Test @@ -900,7 +902,7 @@ public class DateUtilTest { // 测试字符串与LocalDateTime的互相转换 final String strDate = "2019-12-01"; final LocalDateTime localDateTime = TimeUtil.parse(strDate, "yyyy-MM-dd"); - Assertions.assertEquals(strDate, DateUtil.format(localDateTime, DateFormatPool.NORM_DATE_PATTERN)); + assertEquals(strDate, DateUtil.format(localDateTime, DateFormatPool.NORM_DATE_PATTERN)); } @Test @@ -909,7 +911,7 @@ public class DateUtilTest { final DateTime end = DateUtil.parse("2019-10-05"); final long weekCount = DateUtil.betweenWeek(start, end, true); - Assertions.assertEquals(30L, weekCount); + assertEquals(30L, weekCount); } @Test @@ -919,7 +921,7 @@ public class DateUtilTest { final long betweenDay = DateUtil.betweenDay( DateUtil.parse("1970-01-01"), DateUtil.parse(datr), false); - Assertions.assertEquals(Math.abs(LocalDate.parse(datr).toEpochDay()), betweenDay); + assertEquals(Math.abs(LocalDate.parse(datr).toEpochDay()), betweenDay); } } @@ -929,37 +931,37 @@ public class DateUtilTest { DateUtil.parse("2024-03-01"), DateUtil.parse("2024-03-31"), true); - Assertions.assertEquals(30, betweenDay); + assertEquals(30, betweenDay); } @Test public void dayOfYearTest() { final int dayOfYear = DateUtil.dayOfYear(DateUtil.parse("2020-01-01")); - Assertions.assertEquals(1, dayOfYear); + assertEquals(1, dayOfYear); final int lengthOfYear = DateUtil.lengthOfYear(2020); - Assertions.assertEquals(366, lengthOfYear); + assertEquals(366, lengthOfYear); } @SuppressWarnings("ConstantConditions") @Test public void parseSingleNumberTest() { DateTime dateTime = DateUtil.parse("2020-5-08"); - Assertions.assertEquals("2020-05-08 00:00:00", dateTime.toString()); + assertEquals("2020-05-08 00:00:00", dateTime.toString()); dateTime = DateUtil.parse("2020-5-8"); - Assertions.assertEquals("2020-05-08 00:00:00", dateTime.toString()); + assertEquals("2020-05-08 00:00:00", dateTime.toString()); dateTime = DateUtil.parse("2020-05-8"); - Assertions.assertEquals("2020-05-08 00:00:00", dateTime.toString()); + assertEquals("2020-05-08 00:00:00", dateTime.toString()); //datetime dateTime = DateUtil.parse("2020-5-8 3:12:3"); - Assertions.assertEquals("2020-05-08 03:12:03", dateTime.toString()); + assertEquals("2020-05-08 03:12:03", dateTime.toString()); dateTime = DateUtil.parse("2020-5-8 3:2:3"); - Assertions.assertEquals("2020-05-08 03:02:03", dateTime.toString()); + assertEquals("2020-05-08 03:02:03", dateTime.toString()); dateTime = DateUtil.parse("2020-5-8 3:12:13"); - Assertions.assertEquals("2020-05-08 03:12:13", dateTime.toString()); + assertEquals("2020-05-08 03:12:13", dateTime.toString()); dateTime = DateUtil.parse("2020-5-8 4:12:26.223"); - Assertions.assertEquals("2020-05-08 04:12:26", dateTime.toString()); + assertEquals("2020-05-08 04:12:26", dateTime.toString()); } @SuppressWarnings("ConstantConditions") @@ -967,7 +969,7 @@ public class DateUtilTest { public void parseISO8601Test() { final String dt = "2020-06-03 12:32:12,333"; final DateTime parse = DateUtil.parse(dt); - Assertions.assertEquals("2020-06-03 12:32:12", parse.toString()); + assertEquals("2020-06-03 12:32:12", parse.toString()); } @Test @@ -985,19 +987,19 @@ public class DateUtilTest { calendar.set(2021, Calendar.JULY, 14, 23, 59, 59); final Date date = new DateTime(calendar); - Assertions.assertEquals("2021-07-14 23:59:59", DateUtil.format(date, DateFormatPool.NORM_DATETIME_FORMATTER)); - Assertions.assertEquals("2021-07-14 23:59:59", DateUtil.format(date, DateFormatPool.NORM_DATETIME_FORMAT)); - Assertions.assertEquals("2021-07-14 23:59:59", DateUtil.format(date, DateFormatPool.NORM_DATETIME_PATTERN)); + assertEquals("2021-07-14 23:59:59", DateUtil.format(date, DateFormatPool.NORM_DATETIME_FORMATTER)); + assertEquals("2021-07-14 23:59:59", DateUtil.format(date, DateFormatPool.NORM_DATETIME_FORMAT)); + assertEquals("2021-07-14 23:59:59", DateUtil.format(date, DateFormatPool.NORM_DATETIME_PATTERN)); } @Test public void formatNormDateTimeFormatterTest() { String format = DateUtil.format(DateUtil.parse("2021-07-14 10:05:38"), DateFormatPool.NORM_DATETIME_FORMATTER); - Assertions.assertEquals("2021-07-14 10:05:38", format); + assertEquals("2021-07-14 10:05:38", format); format = DateUtil.format(TimeUtil.parseByISO("2021-07-14T10:05:38"), "yyyy-MM-dd HH:mm:ss"); - Assertions.assertEquals("2021-07-14 10:05:38", format); + assertEquals("2021-07-14 10:05:38", format); } @Test @@ -1015,17 +1017,17 @@ public class DateUtilTest { public void parseSingleMonthAndDayTest() { DateTime parse = DateUtil.parse("2021-1-1"); Assertions.assertNotNull(parse); - Assertions.assertEquals("2021-01-01 00:00:00", parse.toString()); + assertEquals("2021-01-01 00:00:00", parse.toString()); parse = DateUtil.parse("2021-1-22 00:00:00"); Assertions.assertNotNull(parse); - Assertions.assertEquals("2021-01-22 00:00:00", parse.toString()); + assertEquals("2021-01-22 00:00:00", parse.toString()); } @Test public void parseByDateTimeFormatterTest() { final DateTime parse = DateUtil.parse("2021-12-01", DateFormatPool.NORM_DATE_FORMATTER); - Assertions.assertEquals("2021-12-01 00:00:00", parse.toString()); + assertEquals("2021-12-01 00:00:00", parse.toString()); } @Test @@ -1091,7 +1093,7 @@ public class DateUtilTest { public void isLastDayTest(){ final DateTime dateTime = DateUtil.parse("2022-09-30"); final int dayOfMonth = DateUtil.getLastDayOfMonth(dateTime); - Assertions.assertEquals(dayOfMonth, Objects.requireNonNull(dateTime).dayOfMonth()); + assertEquals(dayOfMonth, Objects.requireNonNull(dateTime).dayOfMonth()); Assertions.assertTrue(DateUtil.isLastDayOfMonth(dateTime), "not is last day of this month !!"); } @@ -1103,17 +1105,17 @@ public class DateUtilTest { final String dateStr = "2023-02-07T00:02:16.12345+08:00"; final DateTime dateTime = DateUtil.parse(dateStr); Assertions.assertNotNull(dateTime); - Assertions.assertEquals("2023-02-07 00:02:16", dateTime.toString()); + assertEquals("2023-02-07 00:02:16", dateTime.toString()); final String dateStr2 = "2023-02-07T00:02:16.12345-08:00"; final DateTime dateTime2 = DateUtil.parse(dateStr2); Assertions.assertNotNull(dateTime2); - Assertions.assertEquals("2023-02-07 16:02:16", dateTime2.toString()); + assertEquals("2023-02-07 16:02:16", dateTime2.toString()); final String dateStr3 = "2021-03-17T06:31:33.9999"; final DateTime dateTime3 = DateUtil.parse(dateStr3); Assertions.assertNotNull(dateTime3); - Assertions.assertEquals("2021-03-17 06:31:33", dateTime3.toString()); + assertEquals("2021-03-17 06:31:33", dateTime3.toString()); } /** @@ -1122,22 +1124,29 @@ public class DateUtilTest { @Test public void issueI6E6ZGTest() { // issue#I6E6ZG,法定生日当天不算年龄,从第二天开始计算 - Assertions.assertEquals(70, DateUtil.age(DateUtil.parse("1952-02-14"), DateUtil.parse("2023-02-14"))); - Assertions.assertEquals(71, DateUtil.age(DateUtil.parse("1952-02-13"), DateUtil.parse("2023-02-14"))); - Assertions.assertEquals(0, DateUtil.age(DateUtil.parse("2023-02-14"), DateUtil.parse("2023-02-14"))); + assertEquals(70, DateUtil.age(DateUtil.parse("1952-02-14"), DateUtil.parse("2023-02-14"))); + assertEquals(71, DateUtil.age(DateUtil.parse("1952-02-13"), DateUtil.parse("2023-02-14"))); + assertEquals(0, DateUtil.age(DateUtil.parse("2023-02-14"), DateUtil.parse("2023-02-14"))); } @Test void issueI7H34NTest() { final DateTime parse = DateUtil.parse("2019-10-22T09:56:03.000123Z"); Assertions.assertNotNull(parse); - Assertions.assertEquals("2019-10-22 17:56:03", parse.toString()); + assertEquals("2019-10-22 17:56:03", parse.toString()); } @Test public void issueI8NMP7Test() { final String str = "1702262524444"; final DateTime parse = DateUtil.parse(str); - Assertions.assertEquals("2023-12-11 10:42:04", Objects.requireNonNull(parse).toString()); + assertEquals("2023-12-11 10:42:04", Objects.requireNonNull(parse).toString()); + } + + @Test + public void pr1367Test() { + final String dateStr1 = "2025-07-28T20:00+08:00"; + final DateTime dt = DateUtil.parse(dateStr1); + assertEquals("2025-07-28 20:00:00", dt.toString()); } }