add DatePattern

This commit is contained in:
Looly
2024-10-10 17:15:54 +08:00
parent 5c93ca2cf4
commit 4b5d556f32
22 changed files with 1299 additions and 1282 deletions

View File

@@ -38,7 +38,7 @@ public class CalendarUtilTest {
public void parseTest(){
Assertions.assertThrows(IllegalArgumentException.class, ()->{
final Calendar calendar = CalendarUtil.parse("2021-09-27 00:00:112323", false,
DatePattern.NORM_DATETIME_FORMAT);
DateFormatPool.NORM_DATETIME_FORMAT);
// https://github.com/dromara/hutool/issues/1849
// 在使用严格模式时,秒不正确,抛出异常

View File

@@ -30,47 +30,47 @@ public class DateModifierTest {
// 毫秒
DateTime begin = DateUtil.truncate(date, DateField.MILLISECOND);
Assertions.assertEquals(dateStr, begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals(dateStr, begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 秒
begin = DateUtil.truncate(date, DateField.SECOND);
Assertions.assertEquals("2017-03-01 22:33:23.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 22:33:23.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 分
begin = DateUtil.truncate(date, DateField.MINUTE);
Assertions.assertEquals("2017-03-01 22:33:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 22:33:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 小时
begin = DateUtil.truncate(date, DateField.HOUR);
Assertions.assertEquals("2017-03-01 22:00:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 22:00:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
begin = DateUtil.truncate(date, DateField.HOUR_OF_DAY);
Assertions.assertEquals("2017-03-01 22:00:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 22:00:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 上下午原始日期是22点上下午的起始就是12点
begin = DateUtil.truncate(date, DateField.AM_PM);
Assertions.assertEquals("2017-03-01 12:00:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 12:00:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 天day of xxx按照day处理
begin = DateUtil.truncate(date, DateField.DAY_OF_WEEK_IN_MONTH);
Assertions.assertEquals("2017-03-01 00:00:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 00:00:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
begin = DateUtil.truncate(date, DateField.DAY_OF_WEEK);
Assertions.assertEquals("2017-03-01 00:00:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 00:00:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
begin = DateUtil.truncate(date, DateField.DAY_OF_MONTH);
Assertions.assertEquals("2017-03-01 00:00:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 00:00:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 星期
begin = DateUtil.truncate(date, DateField.WEEK_OF_MONTH);
Assertions.assertEquals("2017-02-27 00:00:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-02-27 00:00:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
begin = DateUtil.truncate(date, DateField.WEEK_OF_YEAR);
Assertions.assertEquals("2017-02-27 00:00:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-02-27 00:00:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 月
begin = DateUtil.truncate(date, DateField.MONTH);
Assertions.assertEquals("2017-03-01 00:00:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 00:00:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 年
begin = DateUtil.truncate(date, DateField.YEAR);
Assertions.assertEquals("2017-01-01 00:00:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-01-01 00:00:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
}
@Test
@@ -80,7 +80,7 @@ public class DateModifierTest {
// 天day of xxx按照day处理
final DateTime begin = DateUtil.truncate(date, DateField.DAY_OF_WEEK_IN_MONTH);
Assertions.assertEquals("2017-03-01 00:00:00.000", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 00:00:00.000", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
}
@Test
@@ -90,47 +90,47 @@ public class DateModifierTest {
// 毫秒
DateTime begin = DateUtil.ceiling(date, DateField.MILLISECOND, false);
Assertions.assertEquals(dateStr, begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals(dateStr, begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 秒
begin = DateUtil.ceiling(date, DateField.SECOND, false);
Assertions.assertEquals("2017-03-01 22:33:23.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 22:33:23.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 分
begin = DateUtil.ceiling(date, DateField.MINUTE, false);
Assertions.assertEquals("2017-03-01 22:33:59.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 22:33:59.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 小时
begin = DateUtil.ceiling(date, DateField.HOUR, false);
Assertions.assertEquals("2017-03-01 22:59:59.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 22:59:59.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
begin = DateUtil.ceiling(date, DateField.HOUR_OF_DAY, false);
Assertions.assertEquals("2017-03-01 22:59:59.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 22:59:59.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 上下午原始日期是22点上下午的结束就是23点
begin = DateUtil.ceiling(date, DateField.AM_PM, false);
Assertions.assertEquals("2017-03-01 23:59:59.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 23:59:59.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 天day of xxx按照day处理
begin = DateUtil.ceiling(date, DateField.DAY_OF_WEEK_IN_MONTH, false);
Assertions.assertEquals("2017-03-01 23:59:59.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 23:59:59.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
begin = DateUtil.ceiling(date, DateField.DAY_OF_WEEK, false);
Assertions.assertEquals("2017-03-01 23:59:59.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 23:59:59.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
begin = DateUtil.ceiling(date, DateField.DAY_OF_MONTH, false);
Assertions.assertEquals("2017-03-01 23:59:59.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-01 23:59:59.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 星期
begin = DateUtil.ceiling(date, DateField.WEEK_OF_MONTH, false);
Assertions.assertEquals("2017-03-05 23:59:59.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-05 23:59:59.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
begin = DateUtil.ceiling(date, DateField.WEEK_OF_YEAR, false);
Assertions.assertEquals("2017-03-05 23:59:59.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-05 23:59:59.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 月
begin = DateUtil.ceiling(date, DateField.MONTH, false);
Assertions.assertEquals("2017-03-31 23:59:59.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-03-31 23:59:59.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
// 年
begin = DateUtil.ceiling(date, DateField.YEAR, false);
Assertions.assertEquals("2017-12-31 23:59:59.999", begin.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2017-12-31 23:59:59.999", begin.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
}
@Test
@@ -140,6 +140,6 @@ public class DateModifierTest {
final Date date = DateUtil.parse(dateStr);
final DateTime dateTime = DateUtil.round(date, DateField.SECOND);
Assertions.assertEquals("2022-08-12 14:59:21.999", dateTime.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2022-08-12 14:59:21.999", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
}
}

View File

@@ -31,7 +31,7 @@ public class DateTimeTest {
@Test
public void datetimeTest() {
final DateTime dateTime = new DateTime("2017-01-05 12:34:23", DatePattern.NORM_DATETIME_FORMAT);
final DateTime dateTime = new DateTime("2017-01-05 12:34:23", DateFormatPool.NORM_DATETIME_FORMAT);
// 年
final int year = dateTime.year();
@@ -73,36 +73,36 @@ public class DateTimeTest {
@Test
public void quarterTest() {
DateTime dateTime = new DateTime("2017-01-05 12:34:23", DatePattern.NORM_DATETIME_FORMAT);
DateTime dateTime = new DateTime("2017-01-05 12:34:23", DateFormatPool.NORM_DATETIME_FORMAT);
Quarter quarter = dateTime.quarterEnum();
Assertions.assertEquals(Quarter.Q1, quarter);
dateTime = new DateTime("2017-04-05 12:34:23", DatePattern.NORM_DATETIME_FORMAT);
dateTime = new DateTime("2017-04-05 12:34:23", DateFormatPool.NORM_DATETIME_FORMAT);
quarter = dateTime.quarterEnum();
Assertions.assertEquals(Quarter.Q2, quarter);
dateTime = new DateTime("2017-07-05 12:34:23", DatePattern.NORM_DATETIME_FORMAT);
dateTime = new DateTime("2017-07-05 12:34:23", DateFormatPool.NORM_DATETIME_FORMAT);
quarter = dateTime.quarterEnum();
Assertions.assertEquals(Quarter.Q3, quarter);
dateTime = new DateTime("2017-10-05 12:34:23", DatePattern.NORM_DATETIME_FORMAT);
dateTime = new DateTime("2017-10-05 12:34:23", DateFormatPool.NORM_DATETIME_FORMAT);
quarter = dateTime.quarterEnum();
Assertions.assertEquals(Quarter.Q4, quarter);
// 精确到毫秒
final DateTime beginTime = new DateTime("2017-10-01 00:00:00.000", DatePattern.NORM_DATETIME_MS_FORMAT);
final DateTime beginTime = new DateTime("2017-10-01 00:00:00.000", DateFormatPool.NORM_DATETIME_MS_FORMAT);
dateTime = DateUtil.beginOfQuarter(dateTime);
Assertions.assertEquals(beginTime, dateTime);
// 精确到毫秒
final DateTime endTime = new DateTime("2017-12-31 23:59:59.999", DatePattern.NORM_DATETIME_MS_FORMAT);
final DateTime endTime = new DateTime("2017-12-31 23:59:59.999", DateFormatPool.NORM_DATETIME_MS_FORMAT);
dateTime = DateUtil.endOfQuarter(dateTime, false);
Assertions.assertEquals(endTime, dateTime);
}
@Test
public void mutableTest() {
final DateTime dateTime = new DateTime("2017-01-05 12:34:23", DatePattern.NORM_DATETIME_FORMAT);
final DateTime dateTime = new DateTime("2017-01-05 12:34:23", DateFormatPool.NORM_DATETIME_FORMAT);
// 默认情况下DateTime为可变对象
DateTime offsite = dateTime.offset(DateField.YEAR, 0);
@@ -116,7 +116,7 @@ public class DateTimeTest {
@Test
public void toStringTest() {
final DateTime dateTime = new DateTime("2017-01-05 12:34:23", DatePattern.NORM_DATETIME_FORMAT);
final DateTime dateTime = new DateTime("2017-01-05 12:34:23", DateFormatPool.NORM_DATETIME_FORMAT);
Assertions.assertEquals("2017-01-05 12:34:23", dateTime.toString());
final String dateStr = dateTime.toString("yyyy/MM/dd");
@@ -125,18 +125,18 @@ public class DateTimeTest {
@Test
public void toStringTest2() {
final DateTime dateTime = new DateTime("2017-01-05 12:34:23", DatePattern.NORM_DATETIME_FORMAT);
final DateTime dateTime = new DateTime("2017-01-05 12:34:23", DateFormatPool.NORM_DATETIME_FORMAT);
String dateStr = dateTime.toString(DatePattern.ISO8601_WITH_ZONE_OFFSET_PATTERN);
String dateStr = dateTime.toString(DateFormatPool.ISO8601_WITH_ZONE_OFFSET_PATTERN);
Assertions.assertEquals("2017-01-05T12:34:23+0800", dateStr);
dateStr = dateTime.toString(DatePattern.ISO8601_WITH_XXX_OFFSET_PATTERN);
dateStr = dateTime.toString(DateFormatPool.ISO8601_WITH_XXX_OFFSET_PATTERN);
Assertions.assertEquals("2017-01-05T12:34:23+08:00", dateStr);
}
@Test
public void toStringWithTimeZoneTest() {
final DateTime dateTime = new DateTime("2017-01-05 12:34:23", DatePattern.NORM_DATETIME_FORMAT);
final DateTime dateTime = new DateTime("2017-01-05 12:34:23", DateFormatPool.NORM_DATETIME_FORMAT);
final String dateStr = dateTime.toString(TimeZone.getTimeZone("UTC"));
Assertions.assertEquals("2017-01-05 04:34:23", dateStr);
@@ -168,7 +168,7 @@ public class DateTimeTest {
public void ofTest(){
Assertions.assertThrows(IllegalArgumentException.class, ()->{
final String a = "2021-09-27 00:00:99";
new DateTime(a, DatePattern.NORM_DATETIME_FORMAT, false);
new DateTime(a, DateFormatPool.NORM_DATETIME_FORMAT, false);
});
}

View File

@@ -142,10 +142,10 @@ public class DateUtilTest {
DateTime dateTime = DateUtil.ceiling(date2, DateField.MINUTE, false);
Assertions.assertEquals("2020-02-29 12:59:59.999", dateTime.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.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(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2020-02-29 12:59:59.000", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
}
@Test
@@ -155,10 +155,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(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.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(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2020-02-29 23:59:59.000", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
}
@Test
@@ -393,13 +393,13 @@ public class DateUtilTest {
public void parseTest3() {
final String dateStr = "2018-10-10 12:11:11";
final Date date = DateUtil.parse(dateStr);
final String format = DateUtil.format(date, DatePattern.NORM_DATETIME_PATTERN);
final String format = DateUtil.format(date, DateFormatPool.NORM_DATETIME_PATTERN);
Assertions.assertEquals(dateStr, format);
}
@Test
public void parseTest4() {
final String ymd = DateUtil.parse("2019-3-21 12:20:15", "yyyy-MM-dd").toString(DatePattern.PURE_DATE_PATTERN);
final String ymd = DateUtil.parse("2019-3-21 12:20:15", "yyyy-MM-dd").toString(DateFormatPool.PURE_DATE_PATTERN);
Assertions.assertEquals("20190321", ymd);
}
@@ -407,33 +407,33 @@ public class DateUtilTest {
public void parseTest5() {
// 测试时间解析
//noinspection ConstantConditions
String time = DateUtil.parse("22:12:12").toString(DatePattern.NORM_TIME_FORMAT);
String time = DateUtil.parse("22:12:12").toString(DateFormatPool.NORM_TIME_FORMAT);
Assertions.assertEquals("22:12:12", time);
//noinspection ConstantConditions
time = DateUtil.parse("2:12:12").toString(DatePattern.NORM_TIME_FORMAT);
time = DateUtil.parse("2:12:12").toString(DateFormatPool.NORM_TIME_FORMAT);
Assertions.assertEquals("02:12:12", time);
//noinspection ConstantConditions
time = DateUtil.parse("2:2:12").toString(DatePattern.NORM_TIME_FORMAT);
time = DateUtil.parse("2:2:12").toString(DateFormatPool.NORM_TIME_FORMAT);
Assertions.assertEquals("02:02:12", time);
//noinspection ConstantConditions
time = DateUtil.parse("2:2:1").toString(DatePattern.NORM_TIME_FORMAT);
time = DateUtil.parse("2:2:1").toString(DateFormatPool.NORM_TIME_FORMAT);
Assertions.assertEquals("02:02:01", time);
//noinspection ConstantConditions
time = DateUtil.parse("22:2:1").toString(DatePattern.NORM_TIME_FORMAT);
time = DateUtil.parse("22:2:1").toString(DateFormatPool.NORM_TIME_FORMAT);
Assertions.assertEquals("22:02:01", time);
//noinspection ConstantConditions
time = DateUtil.parse("2:22:1").toString(DatePattern.NORM_TIME_FORMAT);
time = DateUtil.parse("2:22:1").toString(DateFormatPool.NORM_TIME_FORMAT);
Assertions.assertEquals("02:22:01", time);
// 测试两位时间解析
//noinspection ConstantConditions
time = DateUtil.parse("2:22").toString(DatePattern.NORM_TIME_FORMAT);
time = DateUtil.parse("2:22").toString(DateFormatPool.NORM_TIME_FORMAT);
Assertions.assertEquals("02:22:00", time);
//noinspection ConstantConditions
time = DateUtil.parse("12:22").toString(DatePattern.NORM_TIME_FORMAT);
time = DateUtil.parse("12:22").toString(DateFormatPool.NORM_TIME_FORMAT);
Assertions.assertEquals("12:22:00", time);
//noinspection ConstantConditions
time = DateUtil.parse("12:2").toString(DatePattern.NORM_TIME_FORMAT);
time = DateUtil.parse("12:2").toString(DateFormatPool.NORM_TIME_FORMAT);
Assertions.assertEquals("12:02:00", time);
}
@@ -475,22 +475,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(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.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(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.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(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.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(DatePattern.NORM_DATETIME_MS_PATTERN));
Assertions.assertEquals("2020-02-06 01:58:00.111", dateTime.toString(DateFormatPool.NORM_DATETIME_MS_PATTERN));
}
/**
@@ -532,7 +532,7 @@ public class DateUtilTest {
public void parseDateTest() {
final String dateStr = "2018-4-10";
final Date date = DateUtil.parse(dateStr);
final String format = DateUtil.format(date, DatePattern.NORM_DATE_PATTERN);
final String format = DateUtil.format(date, DateFormatPool.NORM_DATE_PATTERN);
Assertions.assertEquals("2018-04-10", format);
}
@@ -645,7 +645,7 @@ public class DateUtilTest {
dateStr1 = "2018-09-13T13:34:36.999+0800";
dt = DateUtil.parse(dateStr1);
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DatePattern.NORM_DATETIME_MS_PATTERN);
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);
@@ -705,7 +705,7 @@ public class DateUtilTest {
public void parseCSTTest() {
final String dateStr = "Wed Sep 16 11:26:23 +0800 2009";
final SimpleDateFormat sdf = new SimpleDateFormat(DatePattern.JDK_DATETIME_PATTERN, Locale.US);
final SimpleDateFormat sdf = new SimpleDateFormat(DateFormatPool.JDK_DATETIME_PATTERN, Locale.US);
// Asia/Shanghai是以地区命名的地区标准时在中国叫CST因此如果解析CST时不使用"Asia/Shanghai"而使用"GMT+08:00",会导致相差一个小时
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
final DateTime parse = DateUtil.parse(dateStr, sdf);
@@ -719,11 +719,11 @@ public class DateUtilTest {
public void parseCSTTest2() {
final String dateStr = "Wed Sep 16 11:26:23 CST 2009";
final SimpleDateFormat sdf = new SimpleDateFormat(DatePattern.JDK_DATETIME_PATTERN, Locale.US);
final SimpleDateFormat sdf = new SimpleDateFormat(DateFormatPool.JDK_DATETIME_PATTERN, Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("America/Chicago"));
final DateTime parse = DateUtil.parse(dateStr, sdf);
final FastDateFormat fdf = FastDateFormat.getInstance(DatePattern.JDK_DATETIME_PATTERN, TimeZone.getTimeZone("America/Chicago"), Locale.US);
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);
@@ -788,14 +788,14 @@ public class DateUtilTest {
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, DatePattern.NORM_DATETIME_PATTERN));
Assertions.assertEquals(0, DateUtil.compare(date1, date2, DatePattern.NORM_DATE_PATTERN));
Assertions.assertEquals(0, DateUtil.compare(date1, date2, DatePattern.NORM_DATETIME_MINUTE_PATTERN));
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));
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, DatePattern.NORM_MONTH_PATTERN));
Assertions.assertEquals(0, DateUtil.compare(date11, date22, DateFormatPool.NORM_MONTH_PATTERN));
}
@Test
@@ -830,7 +830,7 @@ public class DateUtilTest {
final LocalDate localDate = localDateTime.toLocalDate();
final DateTime date2 = DateUtil.date(localDate);
Assertions.assertEquals("2017-05-06",
DateUtil.format(date2, DatePattern.NORM_DATE_PATTERN));
DateUtil.format(date2, DateFormatPool.NORM_DATE_PATTERN));
}
@Test
@@ -890,8 +890,8 @@ public class DateUtilTest {
Assertions.assertEquals(strDate, strDate1);
final String strDate2 = "2019-12-01 17:02:30.111";
ldt = TimeUtil.parse(strDate2, DatePattern.NORM_DATETIME_MS_PATTERN);
strDate1 = DateUtil.format(ldt, DatePattern.NORM_DATETIME_PATTERN);
ldt = TimeUtil.parse(strDate2, DateFormatPool.NORM_DATETIME_MS_PATTERN);
strDate1 = DateUtil.format(ldt, DateFormatPool.NORM_DATETIME_PATTERN);
Assertions.assertEquals(strDate, strDate1);
}
@@ -900,7 +900,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, DatePattern.NORM_DATE_PATTERN));
Assertions.assertEquals(strDate, DateUtil.format(localDateTime, DateFormatPool.NORM_DATE_PATTERN));
}
@Test
@@ -975,7 +975,7 @@ public class DateUtilTest {
Assertions.assertThrows(DateException.class, ()->{
//https://github.com/dromara/hutool/issues/1332
// 在日期格式不匹配的时候,测试是否正常报错
DateUtil.parse("2020-12-23", DatePattern.PURE_DATE_PATTERN);
DateUtil.parse("2020-12-23", DateFormatPool.PURE_DATE_PATTERN);
});
}
@@ -985,14 +985,14 @@ 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, DatePattern.NORM_DATETIME_FORMATTER));
Assertions.assertEquals("2021-07-14 23:59:59", DateUtil.format(date, DatePattern.NORM_DATETIME_FORMAT));
Assertions.assertEquals("2021-07-14 23:59:59", DateUtil.format(date, DatePattern.NORM_DATETIME_PATTERN));
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));
}
@Test
public void formatNormDateTimeFormatterTest() {
String format = DateUtil.format(DateUtil.parse("2021-07-14 10:05:38"), DatePattern.NORM_DATETIME_FORMATTER);
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);
format = DateUtil.format(TimeUtil.parseByISO("2021-07-14T10:05:38"),
@@ -1024,7 +1024,7 @@ public class DateUtilTest {
@Test
public void parseByDateTimeFormatterTest() {
final DateTime parse = DateUtil.parse("2021-12-01", DatePattern.NORM_DATE_FORMATTER);
final DateTime parse = DateUtil.parse("2021-12-01", DateFormatPool.NORM_DATE_FORMATTER);
Assertions.assertEquals("2021-12-01 00:00:00", parse.toString());
}

View File

@@ -26,14 +26,14 @@ public class TemporalAccessorUtilTest {
@Test
public void formatLocalDateTest(){
final String format = TemporalAccessorUtil.format(LocalDate.of(2020, 12, 7), DatePattern.NORM_DATETIME_PATTERN);
final String format = TemporalAccessorUtil.format(LocalDate.of(2020, 12, 7), DateFormatPool.NORM_DATETIME_PATTERN);
Assertions.assertEquals("2020-12-07 00:00:00", format);
}
@Test
public void formatLocalTimeTest(){
final String today = TemporalAccessorUtil.format(LocalDate.now(), DatePattern.NORM_DATE_PATTERN);
final String format = TemporalAccessorUtil.format(LocalTime.MIN, DatePattern.NORM_DATETIME_PATTERN);
final String today = TemporalAccessorUtil.format(LocalDate.now(), DateFormatPool.NORM_DATE_PATTERN);
final String format = TemporalAccessorUtil.format(LocalTime.MIN, DateFormatPool.NORM_DATETIME_PATTERN);
Assertions.assertEquals(today + " 00:00:00", format);
}
@@ -54,9 +54,9 @@ public class TemporalAccessorUtilTest {
final String startTimeStr = "2022-04-19 00:00:00";
final String endTimeStr = "2022-04-19 23:59:59";
final boolean between = TimeUtil.isIn(
TimeUtil.parse(sourceStr, DatePattern.NORM_DATETIME_FORMATTER),
TimeUtil.parse(startTimeStr, DatePattern.NORM_DATETIME_FORMATTER),
TimeUtil.parse(endTimeStr, DatePattern.NORM_DATETIME_FORMATTER));
TimeUtil.parse(sourceStr, DateFormatPool.NORM_DATETIME_FORMATTER),
TimeUtil.parse(startTimeStr, DateFormatPool.NORM_DATETIME_FORMATTER),
TimeUtil.parse(endTimeStr, DateFormatPool.NORM_DATETIME_FORMATTER));
Assertions.assertTrue(between);
}
}

View File

@@ -75,13 +75,13 @@ public class TimeUtilTest {
@Test
public void parseTest2() {
final LocalDateTime localDateTime = TimeUtil.parse("2020-01-23", DatePattern.NORM_DATE_PATTERN);
final LocalDateTime localDateTime = TimeUtil.parse("2020-01-23", DateFormatPool.NORM_DATE_PATTERN);
assertEquals("2020-01-23T00:00", Objects.requireNonNull(localDateTime).toString());
}
@Test
public void parseTest3() {
final LocalDateTime localDateTime = TimeUtil.parse("12:23:56", DatePattern.NORM_TIME_PATTERN);
final LocalDateTime localDateTime = TimeUtil.parse("12:23:56", DateFormatPool.NORM_TIME_PATTERN);
assertEquals("12:23:56", Objects.requireNonNull(localDateTime).toLocalTime().toString());
}
@@ -127,20 +127,20 @@ public class TimeUtilTest {
@Test
public void formatTest() {
final LocalDateTime localDateTime = TimeUtil.parseByISO("2020-01-23T12:23:56");
String format = TimeUtil.format(localDateTime, DatePattern.NORM_DATETIME_PATTERN);
String format = TimeUtil.format(localDateTime, DateFormatPool.NORM_DATETIME_PATTERN);
assertEquals("2020-01-23 12:23:56", format);
format = TimeUtil.formatNormal(localDateTime);
assertEquals("2020-01-23 12:23:56", format);
format = TimeUtil.format(localDateTime, DatePattern.NORM_DATE_PATTERN);
format = TimeUtil.format(localDateTime, DateFormatPool.NORM_DATE_PATTERN);
assertEquals("2020-01-23", format);
}
@Test
public void formatLocalDateTest() {
final LocalDate date = LocalDate.parse("2020-01-23");
String format = TimeUtil.format(date, DatePattern.NORM_DATE_PATTERN);
String format = TimeUtil.format(date, DateFormatPool.NORM_DATE_PATTERN);
assertEquals("2020-01-23", format);
format = TimeUtil.formatNormal(date);
@@ -354,7 +354,7 @@ public class TimeUtilTest {
public void formatDateFunctionTest() {
final List<String> dateStrList = Stream.of("2023-03-01", "2023-03-02")
.map(LocalDate::parse)
.map(TimeUtil.formatFunc(DatePattern.CHINESE_DATE_FORMATTER))
.map(TimeUtil.formatFunc(DateFormatPool.CHINESE_DATE_FORMATTER))
.collect(Collectors.toList());
assertEquals("2023年03月01日", dateStrList.get(0));
assertEquals("2023年03月02日", dateStrList.get(1));
@@ -364,7 +364,7 @@ public class TimeUtilTest {
public void formatTimeFunctionTest() {
final List<String> dateStrList = Stream.of("2023-03-01T12:23:56", "2023-03-02T12:23:56")
.map(LocalDateTime::parse)
.map(TimeUtil.formatFunc(DatePattern.CHINESE_DATE_FORMATTER))
.map(TimeUtil.formatFunc(DateFormatPool.CHINESE_DATE_FORMATTER))
.collect(Collectors.toList());
assertEquals("2023年03月01日", dateStrList.get(0));
assertEquals("2023年03月02日", dateStrList.get(1));

View File

@@ -27,7 +27,7 @@ public class TimeZoneTest {
@Test
public void timeZoneConvertTest() {
final DateTime dt = DateUtil.parse("2018-07-10 21:44:32", //
FastDateFormat.getInstance(DatePattern.NORM_DATETIME_PATTERN, TimeZone.getTimeZone("GMT+8:00")));
FastDateFormat.getInstance(DateFormatPool.NORM_DATETIME_PATTERN, TimeZone.getTimeZone("GMT+8:00")));
Assertions.assertEquals("2018-07-10 21:44:32", dt.toString());
dt.setTimeZone(TimeZone.getTimeZone("Europe/London"));

View File

@@ -16,7 +16,7 @@
package org.dromara.hutool.core.text;
import org.dromara.hutool.core.date.DatePattern;
import org.dromara.hutool.core.date.DateFormatPool;
import org.dromara.hutool.core.date.DateUtil;
import org.dromara.hutool.core.util.CharsetUtil;
import org.junit.jupiter.api.Assertions;
@@ -203,12 +203,12 @@ public class CharSequenceUtilTest {
public void defaultIfEmptyTest() {
final String emptyValue = "";
final Instant result1 = CharSequenceUtil.defaultIfEmpty(emptyValue,
(v) -> DateUtil.parse(v, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
(v) -> DateUtil.parse(v, DateFormatPool.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
Assertions.assertNotNull(result1);
final String dateStr = "2020-10-23 15:12:30";
final Instant result2 = CharSequenceUtil.defaultIfEmpty(dateStr,
(v) -> DateUtil.parse(v, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
(v) -> DateUtil.parse(v, DateFormatPool.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
Assertions.assertNotNull(result2);
}
@@ -216,12 +216,12 @@ public class CharSequenceUtilTest {
public void defaultIfBlankTest() {
final String emptyValue = " ";
final Instant result1 = CharSequenceUtil.defaultIfBlank(emptyValue,
(v) -> DateUtil.parse(v, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
(v) -> DateUtil.parse(v, DateFormatPool.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
Assertions.assertNotNull(result1);
final String dateStr = "2020-10-23 15:12:30";
final Instant result2 = CharSequenceUtil.defaultIfBlank(dateStr,
(v) -> DateUtil.parse(v, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
(v) -> DateUtil.parse(v, DateFormatPool.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
Assertions.assertNotNull(result2);
}