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

@@ -16,7 +16,7 @@
package org.dromara.hutool.core.data; package org.dromara.hutool.core.data;
import org.dromara.hutool.core.date.DatePattern; import org.dromara.hutool.core.date.DateFormatPool;
import org.dromara.hutool.core.date.DateTime; import org.dromara.hutool.core.date.DateTime;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.DateUtil;
import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Assert;
@@ -188,7 +188,7 @@ public class CIN {
*/ */
public DateTime getBirthDate() { public DateTime getBirthDate() {
final String birth = getBirth(); final String birth = getBirth();
return DateUtil.parse(birth, DatePattern.PURE_DATE_FORMAT); return DateUtil.parse(birth, DateFormatPool.PURE_DATE_FORMAT);
} }
/** /**

View File

@@ -81,7 +81,7 @@ import java.util.TimeZone;
* *
* @author Looly * @author Looly
*/ */
public class DatePattern { public class DateFormatPool {
// region Normal // region Normal
//================================================== Normal ================================================== //================================================== Normal ==================================================
@@ -275,7 +275,7 @@ public class DatePattern {
* jdk8 bug at: https://bugs.openjdk.java.net/browse/JDK-8031085 * jdk8 bug at: https://bugs.openjdk.java.net/browse/JDK-8031085
*/ */
public static final DateTimeFormatter PURE_DATETIME_MS_FORMATTER = new DateTimeFormatterBuilder() public static final DateTimeFormatter PURE_DATETIME_MS_FORMATTER = new DateTimeFormatterBuilder()
.appendPattern(DatePattern.PURE_DATETIME_PATTERN) .appendPattern(DateFormatPool.PURE_DATETIME_PATTERN)
.appendValue(ChronoField.MILLI_OF_SECOND, 3) .appendValue(ChronoField.MILLI_OF_SECOND, 3)
.toFormatter(); .toFormatter();
// endregion // endregion

View File

@@ -127,7 +127,7 @@ public class DateTime extends Date {
* @param dateStr Date字符串 * @param dateStr Date字符串
* @param format 格式 * @param format 格式
* @return this * @return this
* @see DatePattern * @see DateFormatPool
*/ */
public static DateTime of(final String dateStr, final String format) { public static DateTime of(final String dateStr, final String format) {
return new DateTime(dateStr, format); return new DateTime(dateStr, format);
@@ -294,7 +294,7 @@ public class DateTime extends Date {
* *
* @param dateStr Date字符串 * @param dateStr Date字符串
* @param format 格式 * @param format 格式
* @see DatePattern * @see DateFormatPool
*/ */
public DateTime(final CharSequence dateStr, final String format) { public DateTime(final CharSequence dateStr, final String format) {
this(GlobalCustomFormat.isCustomFormat(format) this(GlobalCustomFormat.isCustomFormat(format)
@@ -307,7 +307,7 @@ public class DateTime extends Date {
* *
* @param dateStr Date字符串 * @param dateStr Date字符串
* @param dateFormat 格式化器 {@link SimpleDateFormat} * @param dateFormat 格式化器 {@link SimpleDateFormat}
* @see DatePattern * @see DateFormatPool
*/ */
public DateTime(final CharSequence dateStr, final DateFormat dateFormat) { public DateTime(final CharSequence dateStr, final DateFormat dateFormat) {
this(parse(dateStr, dateFormat), dateFormat.getTimeZone()); this(parse(dateStr, dateFormat), dateFormat.getTimeZone());
@@ -329,7 +329,7 @@ public class DateTime extends Date {
* *
* @param dateStr Date字符串 * @param dateStr Date字符串
* @param dateParser 格式化器 {@link DateParser},可以使用 {@link FastDateFormat} * @param dateParser 格式化器 {@link DateParser},可以使用 {@link FastDateFormat}
* @see DatePattern * @see DateFormatPool
*/ */
public DateTime(final CharSequence dateStr, final PositionDateParser dateParser) { public DateTime(final CharSequence dateStr, final PositionDateParser dateParser) {
this(dateStr, dateParser, SystemUtil.getBoolean(SystemUtil.HUTOOL_DATE_LENIENT, true)); this(dateStr, dateParser, SystemUtil.getBoolean(SystemUtil.HUTOOL_DATE_LENIENT, true));
@@ -341,7 +341,7 @@ public class DateTime extends Date {
* @param dateStr Date字符串 * @param dateStr Date字符串
* @param dateParser 格式化器 {@link DateParser},可以使用 {@link FastDateFormat} * @param dateParser 格式化器 {@link DateParser},可以使用 {@link FastDateFormat}
* @param lenient 是否宽容模式 * @param lenient 是否宽容模式
* @see DatePattern * @see DateFormatPool
*/ */
public DateTime(final CharSequence dateStr, final PositionDateParser dateParser, final boolean lenient) { public DateTime(final CharSequence dateStr, final PositionDateParser dateParser, final boolean lenient) {
this(parse(dateStr, dateParser, lenient)); this(parse(dateStr, dateParser, lenient));
@@ -1004,9 +1004,9 @@ public class DateTime extends Date {
*/ */
public String toString(final TimeZone timeZone) { public String toString(final TimeZone timeZone) {
if (null != timeZone) { if (null != timeZone) {
return toString(DateUtil.newSimpleFormat(DatePattern.NORM_DATETIME_PATTERN, null, timeZone)); return toString(DateUtil.newSimpleFormat(DateFormatPool.NORM_DATETIME_PATTERN, null, timeZone));
} }
return toString(DatePattern.NORM_DATETIME_FORMAT); return toString(DateFormatPool.NORM_DATETIME_FORMAT);
} }
/** /**
@@ -1017,9 +1017,9 @@ public class DateTime extends Date {
*/ */
public String toDateStr() { public String toDateStr() {
if (null != this.timeZone) { if (null != this.timeZone) {
return toString(DateUtil.newSimpleFormat(DatePattern.NORM_DATE_PATTERN, null, timeZone)); return toString(DateUtil.newSimpleFormat(DateFormatPool.NORM_DATE_PATTERN, null, timeZone));
} }
return toString(DatePattern.NORM_DATE_FORMAT); return toString(DateFormatPool.NORM_DATE_FORMAT);
} }
/** /**
@@ -1030,15 +1030,15 @@ public class DateTime extends Date {
*/ */
public String toTimeStr() { public String toTimeStr() {
if (null != this.timeZone) { if (null != this.timeZone) {
return toString(DateUtil.newSimpleFormat(DatePattern.NORM_TIME_PATTERN, null, timeZone)); return toString(DateUtil.newSimpleFormat(DateFormatPool.NORM_TIME_PATTERN, null, timeZone));
} }
return toString(DatePattern.NORM_TIME_FORMAT); return toString(DateFormatPool.NORM_TIME_FORMAT);
} }
/** /**
* 转为字符串 * 转为字符串
* *
* @param format 日期格式,常用格式见: {@link DatePattern} * @param format 日期格式,常用格式见: {@link DateFormatPool}
* @return String * @return String
*/ */
public String toString(final String format) { public String toString(final String format) {
@@ -1072,7 +1072,7 @@ public class DateTime extends Date {
* @return 输出精确到毫秒的标准日期形式 * @return 输出精确到毫秒的标准日期形式
*/ */
public String toMsStr() { public String toMsStr() {
return toString(DatePattern.NORM_DATETIME_MS_FORMAT); return toString(DateFormatPool.NORM_DATETIME_MS_FORMAT);
} }
// -------------------------------------------------------------------- toString end // -------------------------------------------------------------------- toString end

View File

@@ -46,7 +46,7 @@ import java.util.stream.Collectors;
* *
* @author Looly * @author Looly
* @see TimeUtil java8日志工具类 * @see TimeUtil java8日志工具类
* @see DatePattern 日期常用格式工具类 * @see DateFormatPool 日期常用格式工具类
*/ */
public class DateUtil { public class DateUtil {
@@ -526,7 +526,7 @@ public class DateUtil {
* 根据特定格式格式化日期 * 根据特定格式格式化日期
* *
* @param localDateTime 被格式化的日期 * @param localDateTime 被格式化的日期
* @param format 日期格式,常用格式见: {@link DatePattern} * @param format 日期格式,常用格式见: {@link DateFormatPool}
* @return 格式化后的字符串 * @return 格式化后的字符串
*/ */
public static String format(final LocalDateTime localDateTime, final String format) { public static String format(final LocalDateTime localDateTime, final String format) {
@@ -537,7 +537,7 @@ public class DateUtil {
* 根据特定格式格式化日期 * 根据特定格式格式化日期
* *
* @param date 被格式化的日期 * @param date 被格式化的日期
* @param format 日期格式,常用格式见: {@link DatePattern} {@link DatePattern#NORM_DATETIME_PATTERN} * @param format 日期格式,常用格式见: {@link DateFormatPool} {@link DateFormatPool#NORM_DATETIME_PATTERN}
* @return 格式化后的字符串 * @return 格式化后的字符串
*/ */
public static String format(final Date date, final String format) { public static String format(final Date date, final String format) {
@@ -561,7 +561,7 @@ public class DateUtil {
* 根据特定格式格式化日期 * 根据特定格式格式化日期
* *
* @param date 被格式化的日期 * @param date 被格式化的日期
* @param format {@link DatePrinter} 或 {@link FastDateFormat} {@link DatePattern#NORM_DATETIME_FORMAT} * @param format {@link DatePrinter} 或 {@link FastDateFormat} {@link DateFormatPool#NORM_DATETIME_FORMAT}
* @return 格式化后的字符串 * @return 格式化后的字符串
*/ */
public static String format(final Date date, final DatePrinter format) { public static String format(final Date date, final DatePrinter format) {
@@ -589,7 +589,7 @@ public class DateUtil {
* 根据特定格式格式化日期 * 根据特定格式格式化日期
* *
* @param date 被格式化的日期 * @param date 被格式化的日期
* @param format {@link SimpleDateFormat} {@link DatePattern#NORM_DATETIME_FORMATTER} * @param format {@link SimpleDateFormat} {@link DateFormatPool#NORM_DATETIME_FORMATTER}
* @return 格式化后的字符串 * @return 格式化后的字符串
* @since 5.0.0 * @since 5.0.0
*/ */
@@ -613,7 +613,7 @@ public class DateUtil {
if (null == date) { if (null == date) {
return null; return null;
} }
return DatePattern.NORM_DATETIME_FORMAT.format(date); return DateFormatPool.NORM_DATETIME_FORMAT.format(date);
} }
/** /**
@@ -627,7 +627,7 @@ public class DateUtil {
if (null == date) { if (null == date) {
return null; return null;
} }
return DatePattern.NORM_DATE_FORMAT.format(date); return DateFormatPool.NORM_DATE_FORMAT.format(date);
} }
/** /**
@@ -642,7 +642,7 @@ public class DateUtil {
if (null == date) { if (null == date) {
return null; return null;
} }
return DatePattern.NORM_TIME_FORMAT.format(date); return DateFormatPool.NORM_TIME_FORMAT.format(date);
} }
/** /**
@@ -656,7 +656,7 @@ public class DateUtil {
if (null == date) { if (null == date) {
return null; return null;
} }
return DatePattern.HTTP_DATETIME_FORMAT_GMT.format(date); return DateFormatPool.HTTP_DATETIME_FORMAT_GMT.format(date);
} }
/** /**
@@ -674,7 +674,7 @@ public class DateUtil {
} }
if (!isUppercase) { if (!isUppercase) {
return (withTime ? DatePattern.CHINESE_DATE_TIME_FORMAT : DatePattern.CHINESE_DATE_FORMAT).format(date); return (withTime ? DateFormatPool.CHINESE_DATE_TIME_FORMAT : DateFormatPool.CHINESE_DATE_FORMAT).format(date);
} }
return CalendarUtil.formatChineseDate(CalendarUtil.calendar(date), withTime); return CalendarUtil.formatChineseDate(CalendarUtil.calendar(date), withTime);
@@ -1814,7 +1814,7 @@ public class DateUtil {
* *
* @param date1 日期1 * @param date1 日期1
* @param date2 日期2 * @param date2 日期2
* @param format 日期格式,常用格式见: {@link DatePattern}; 允许为空; date1 date2; eg: yyyy-MM-dd * @param format 日期格式,常用格式见: {@link DateFormatPool}; 允许为空; date1 date2; eg: yyyy-MM-dd
* @return 比较结果如果date1 < date2返回数小于0date1==date2返回0date1 > date2 大于0 * @return 比较结果如果date1 < date2返回数小于0date1==date2返回0date1 > date2 大于0
* @author dazer * @author dazer
* @since 5.6.4 * @since 5.6.4

View File

@@ -40,7 +40,7 @@ import java.util.function.Function;
* *
* @author looly * @author looly
* @see DateUtil java7及其以下版本使用Date工具类 * @see DateUtil java7及其以下版本使用Date工具类
* @see DatePattern 常用格式工具类 * @see DateFormatPool 常用格式工具类
* @since 6.0.0 * @since 6.0.0
*/ */
public class TimeUtil extends TemporalAccessorUtil { public class TimeUtil extends TemporalAccessorUtil {
@@ -298,7 +298,7 @@ public class TimeUtil extends TemporalAccessorUtil {
if (StrUtil.contains(text, 'T')) { if (StrUtil.contains(text, 'T')) {
return parse(text, DateTimeFormatter.ISO_LOCAL_DATE_TIME); return parse(text, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
} else { } else {
return parse(text, DatePattern.NORM_DATETIME_FORMATTER); return parse(text, DateFormatPool.NORM_DATETIME_FORMATTER);
} }
} }
@@ -343,14 +343,14 @@ public class TimeUtil extends TemporalAccessorUtil {
// fix issue#1082 // fix issue#1082
//see https://stackoverflow.com/questions/22588051/is-java-time-failing-to-parse-fraction-of-second //see https://stackoverflow.com/questions/22588051/is-java-time-failing-to-parse-fraction-of-second
// jdk8 bug at: https://bugs.openjdk.java.net/browse/JDK-8031085 // jdk8 bug at: https://bugs.openjdk.java.net/browse/JDK-8031085
if (StrUtil.startWithIgnoreEquals(format, DatePattern.PURE_DATETIME_PATTERN) && format.endsWith("S")) { if (StrUtil.startWithIgnoreEquals(format, DateFormatPool.PURE_DATETIME_PATTERN) && format.endsWith("S")) {
// 需要填充的0的个数 // 需要填充的0的个数
final int paddingWidth = 3 - (format.length() - DatePattern.PURE_DATETIME_PATTERN.length()); final int paddingWidth = 3 - (format.length() - DateFormatPool.PURE_DATETIME_PATTERN.length());
if (paddingWidth > 0) { if (paddingWidth > 0) {
//将yyyyMMddHHmmssS、yyyyMMddHHmmssSS的日期统一替换为yyyyMMddHHmmssSSS格式用0补 //将yyyyMMddHHmmssS、yyyyMMddHHmmssSS的日期统一替换为yyyyMMddHHmmssSSS格式用0补
text += StrUtil.repeat('0', paddingWidth); text += StrUtil.repeat('0', paddingWidth);
} }
formatter = DatePattern.PURE_DATETIME_MS_FORMATTER; formatter = DateFormatPool.PURE_DATETIME_MS_FORMATTER;
} else { } else {
formatter = DateTimeFormatter.ofPattern(format); formatter = DateTimeFormatter.ofPattern(format);
} }
@@ -411,7 +411,7 @@ public class TimeUtil extends TemporalAccessorUtil {
* @since 5.3.11 * @since 5.3.11
*/ */
public static String formatNormal(final ChronoLocalDateTime<?> time) { public static String formatNormal(final ChronoLocalDateTime<?> time) {
return format(time, DatePattern.NORM_DATETIME_FORMATTER); return format(time, DateFormatPool.NORM_DATETIME_FORMATTER);
} }
/** /**
@@ -422,7 +422,7 @@ public class TimeUtil extends TemporalAccessorUtil {
* @since 5.3.11 * @since 5.3.11
*/ */
public static String formatNormal(final ChronoLocalDate date) { public static String formatNormal(final ChronoLocalDate date) {
return format(date, DatePattern.NORM_DATE_FORMATTER); return format(date, DateFormatPool.NORM_DATE_FORMATTER);
} }

View File

@@ -23,7 +23,6 @@ import java.util.TimeZone;
* 日期基本信息获取接口 * 日期基本信息获取接口
* *
* @author Looly * @author Looly
* @since 2.16.2
*/ */
public interface DateBasic { public interface DateBasic {

File diff suppressed because it is too large Load Diff

View File

@@ -22,8 +22,8 @@ import java.util.Date;
/** /**
* 日期格式化输出接口<br> * 日期格式化输出接口<br>
* Thanks to Apache Commons Lang 3.5 * Thanks to Apache Commons Lang 3.5
*
* @author Looly * @author Looly
* @since 2.16.2
*/ */
public interface DatePrinter extends DateBasic { public interface DatePrinter extends DateBasic {

View File

@@ -17,7 +17,7 @@
package org.dromara.hutool.core.date.format; package org.dromara.hutool.core.date.format;
import org.dromara.hutool.core.date.DateException; import org.dromara.hutool.core.date.DateException;
import org.dromara.hutool.core.date.DatePattern; import org.dromara.hutool.core.date.DateFormatPool;
import org.dromara.hutool.core.date.format.parser.FastDateParser; import org.dromara.hutool.core.date.format.parser.FastDateParser;
import org.dromara.hutool.core.date.format.parser.PositionDateParser; import org.dromara.hutool.core.date.format.parser.PositionDateParser;
@@ -47,7 +47,6 @@ import java.util.TimeZone;
* </p> * </p>
* Thanks to Apache Commons Lang 3.5 * Thanks to Apache Commons Lang 3.5
* *
* @since 2.16.2
*/ */
public class FastDateFormat extends Format implements PositionDateParser, DatePrinter { public class FastDateFormat extends Format implements PositionDateParser, DatePrinter {
private static final long serialVersionUID = 8097890768636183236L; private static final long serialVersionUID = 8097890768636183236L;
@@ -413,7 +412,7 @@ public class FastDateFormat extends Format implements PositionDateParser, DatePr
/** /**
* 便捷获取 DateTimeFormatter * 便捷获取 DateTimeFormatter
* 由于 {@link DatePattern} 很大一部分的格式没有提供 {@link DateTimeFormatter},因此这里提供快捷获取方式 * 由于 {@link DateFormatPool} 很大一部分的格式没有提供 {@link DateTimeFormatter},因此这里提供快捷获取方式
* *
* @return DateTimeFormatter * @return DateTimeFormatter
* @author dazer neusoft * @author dazer neusoft

View File

@@ -332,23 +332,23 @@ public class FastDateParser extends SimpleDateBasic implements PositionDateParse
/** /**
* 单个日期字段的分析策略 * 单个日期字段的分析策略
*/ */
private static abstract class Strategy { interface Strategy {
boolean parse(FastDateParser parser, Calendar calendar, CharSequence source, ParsePosition pos, int maxWidth);
/** /**
* Is this field a number? The default implementation returns false. * 是否为数字,默认{@code false}
* *
* @return true, if field is a number * @return {@code true}表示为数字
*/ */
boolean isNumber() { default boolean isNumber() {
return false; return false;
} }
abstract boolean parse(FastDateParser parser, Calendar calendar, CharSequence source, ParsePosition pos, int maxWidth);
} }
/** /**
* A strategy to parse a single field from the parsing pattern * A strategy to parse a single field from the parsing pattern
*/ */
private static abstract class PatternStrategy extends Strategy { private static abstract class PatternStrategy implements Strategy {
private Pattern pattern; private Pattern pattern;
@@ -361,7 +361,7 @@ public class FastDateParser extends SimpleDateBasic implements PositionDateParse
} }
@Override @Override
boolean parse(final FastDateParser parser, final Calendar calendar, final CharSequence source, final ParsePosition pos, final int maxWidth) { public boolean parse(final FastDateParser parser, final Calendar calendar, final CharSequence source, final ParsePosition pos, final int maxWidth) {
final Matcher matcher = pattern.matcher(source.subSequence(pos.getIndex(), source.length())); final Matcher matcher = pattern.matcher(source.subSequence(pos.getIndex(), source.length()));
if (!matcher.lookingAt()) { if (!matcher.lookingAt()) {
pos.setErrorIndex(pos.getIndex()); pos.setErrorIndex(pos.getIndex());
@@ -477,7 +477,7 @@ public class FastDateParser extends SimpleDateBasic implements PositionDateParse
/** /**
* A strategy that copies the static or quoted field in the parsing pattern * A strategy that copies the static or quoted field in the parsing pattern
*/ */
private static class CopyQuotedStrategy extends Strategy { private static class CopyQuotedStrategy implements Strategy {
final private String formatField; final private String formatField;
@@ -491,7 +491,7 @@ public class FastDateParser extends SimpleDateBasic implements PositionDateParse
} }
@Override @Override
boolean parse(final FastDateParser parser, final Calendar calendar, final CharSequence source, final ParsePosition pos, final int maxWidth) { public boolean parse(final FastDateParser parser, final Calendar calendar, final CharSequence source, final ParsePosition pos, final int maxWidth) {
for (int idx = 0; idx < formatField.length(); ++idx) { for (int idx = 0; idx < formatField.length(); ++idx) {
final int sIdx = idx + pos.getIndex(); final int sIdx = idx + pos.getIndex();
if (sIdx == source.length()) { if (sIdx == source.length()) {
@@ -545,7 +545,7 @@ public class FastDateParser extends SimpleDateBasic implements PositionDateParse
/** /**
* A strategy that handles a number field in the parsing pattern * A strategy that handles a number field in the parsing pattern
*/ */
private static class NumberStrategy extends Strategy { private static class NumberStrategy implements Strategy {
private final int field; private final int field;
/** /**
@@ -558,12 +558,12 @@ public class FastDateParser extends SimpleDateBasic implements PositionDateParse
} }
@Override @Override
boolean isNumber() { public boolean isNumber() {
return true; return true;
} }
@Override @Override
boolean parse(final FastDateParser parser, final Calendar calendar, final CharSequence source, final ParsePosition pos, final int maxWidth) { public boolean parse(final FastDateParser parser, final Calendar calendar, final CharSequence source, final ParsePosition pos, final int maxWidth) {
int idx = pos.getIndex(); int idx = pos.getIndex();
int last = source.length(); int last = source.length();

View File

@@ -16,7 +16,7 @@
package org.dromara.hutool.core.date.format.parser; package org.dromara.hutool.core.date.format.parser;
import org.dromara.hutool.core.date.DatePattern; import org.dromara.hutool.core.date.DateFormatPool;
import org.dromara.hutool.core.date.DateTime; import org.dromara.hutool.core.date.DateTime;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.DateUtil;
import org.dromara.hutool.core.regex.PatternPool; import org.dromara.hutool.core.regex.PatternPool;
@@ -57,10 +57,10 @@ public class TimeParser implements PredicateDateParser, Serializable {
source = StrUtil.format("{} {}", DateUtil.formatToday(), source); source = StrUtil.format("{} {}", DateUtil.formatToday(), source);
if (1 == StrUtil.count(source, ':')) { if (1 == StrUtil.count(source, ':')) {
// 时间格式为 HH:mm // 时间格式为 HH:mm
return new DateTime(source, DatePattern.NORM_DATETIME_MINUTE_PATTERN); return new DateTime(source, DateFormatPool.NORM_DATETIME_MINUTE_PATTERN);
} else { } else {
// 时间格式为 HH:mm:ss // 时间格式为 HH:mm:ss
return new DateTime(source, DatePattern.NORM_DATETIME_FORMAT); return new DateTime(source, DateFormatPool.NORM_DATETIME_FORMAT);
} }
} }
} }

View File

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

View File

@@ -30,47 +30,47 @@ public class DateModifierTest {
// 毫秒 // 毫秒
DateTime begin = DateUtil.truncate(date, DateField.MILLISECOND); 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); 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); 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); 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); 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点 // 上下午原始日期是22点上下午的起始就是12点
begin = DateUtil.truncate(date, DateField.AM_PM); 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处理 // 天day of xxx按照day处理
begin = DateUtil.truncate(date, DateField.DAY_OF_WEEK_IN_MONTH); 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); 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); 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); 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); 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); 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); 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 @Test
@@ -80,7 +80,7 @@ public class DateModifierTest {
// 天day of xxx按照day处理 // 天day of xxx按照day处理
final DateTime begin = DateUtil.truncate(date, DateField.DAY_OF_WEEK_IN_MONTH); 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 @Test
@@ -90,47 +90,47 @@ public class DateModifierTest {
// 毫秒 // 毫秒
DateTime begin = DateUtil.ceiling(date, DateField.MILLISECOND, false); 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); 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); 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); 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); 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点 // 上下午原始日期是22点上下午的结束就是23点
begin = DateUtil.ceiling(date, DateField.AM_PM, false); 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处理 // 天day of xxx按照day处理
begin = DateUtil.ceiling(date, DateField.DAY_OF_WEEK_IN_MONTH, false); 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); 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); 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); 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); 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); 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); 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 @Test
@@ -140,6 +140,6 @@ public class DateModifierTest {
final Date date = DateUtil.parse(dateStr); final Date date = DateUtil.parse(dateStr);
final DateTime dateTime = DateUtil.round(date, DateField.SECOND); 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 @Test
public void datetimeTest() { 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(); final int year = dateTime.year();
@@ -73,36 +73,36 @@ public class DateTimeTest {
@Test @Test
public void quarterTest() { 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(); Quarter quarter = dateTime.quarterEnum();
Assertions.assertEquals(Quarter.Q1, quarter); 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(); quarter = dateTime.quarterEnum();
Assertions.assertEquals(Quarter.Q2, quarter); 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(); quarter = dateTime.quarterEnum();
Assertions.assertEquals(Quarter.Q3, quarter); 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(); quarter = dateTime.quarterEnum();
Assertions.assertEquals(Quarter.Q4, quarter); 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); dateTime = DateUtil.beginOfQuarter(dateTime);
Assertions.assertEquals(beginTime, 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); dateTime = DateUtil.endOfQuarter(dateTime, false);
Assertions.assertEquals(endTime, dateTime); Assertions.assertEquals(endTime, dateTime);
} }
@Test @Test
public void mutableTest() { 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为可变对象
DateTime offsite = dateTime.offset(DateField.YEAR, 0); DateTime offsite = dateTime.offset(DateField.YEAR, 0);
@@ -116,7 +116,7 @@ public class DateTimeTest {
@Test @Test
public void toStringTest() { 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()); Assertions.assertEquals("2017-01-05 12:34:23", dateTime.toString());
final String dateStr = dateTime.toString("yyyy/MM/dd"); final String dateStr = dateTime.toString("yyyy/MM/dd");
@@ -125,18 +125,18 @@ public class DateTimeTest {
@Test @Test
public void toStringTest2() { 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); 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); Assertions.assertEquals("2017-01-05T12:34:23+08:00", dateStr);
} }
@Test @Test
public void toStringWithTimeZoneTest() { 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")); final String dateStr = dateTime.toString(TimeZone.getTimeZone("UTC"));
Assertions.assertEquals("2017-01-05 04:34:23", dateStr); Assertions.assertEquals("2017-01-05 04:34:23", dateStr);
@@ -168,7 +168,7 @@ public class DateTimeTest {
public void ofTest(){ public void ofTest(){
Assertions.assertThrows(IllegalArgumentException.class, ()->{ Assertions.assertThrows(IllegalArgumentException.class, ()->{
final String a = "2021-09-27 00:00:99"; 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); 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); 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 @Test
@@ -155,10 +155,10 @@ public class DateUtilTest {
DateTime dateTime = DateUtil.ceiling(date2, DateField.DAY_OF_MONTH, false); 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); 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 @Test
@@ -393,13 +393,13 @@ public class DateUtilTest {
public void parseTest3() { public void parseTest3() {
final String dateStr = "2018-10-10 12:11:11"; final String dateStr = "2018-10-10 12:11:11";
final Date date = DateUtil.parse(dateStr); 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); Assertions.assertEquals(dateStr, format);
} }
@Test @Test
public void parseTest4() { 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); Assertions.assertEquals("20190321", ymd);
} }
@@ -407,33 +407,33 @@ public class DateUtilTest {
public void parseTest5() { public void parseTest5() {
// 测试时间解析 // 测试时间解析
//noinspection ConstantConditions //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); Assertions.assertEquals("22:12:12", time);
//noinspection ConstantConditions //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); Assertions.assertEquals("02:12:12", time);
//noinspection ConstantConditions //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); Assertions.assertEquals("02:02:12", time);
//noinspection ConstantConditions //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); Assertions.assertEquals("02:02:01", time);
//noinspection ConstantConditions //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); Assertions.assertEquals("22:02:01", time);
//noinspection ConstantConditions //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); Assertions.assertEquals("02:22:01", time);
// 测试两位时间解析 // 测试两位时间解析
//noinspection ConstantConditions //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); Assertions.assertEquals("02:22:00", time);
//noinspection ConstantConditions //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); Assertions.assertEquals("12:22:00", time);
//noinspection ConstantConditions //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); Assertions.assertEquals("12:02:00", time);
} }
@@ -475,22 +475,22 @@ public class DateUtilTest {
String str = "2020-02-06 01:58:00.000020"; String str = "2020-02-06 01:58:00.000020";
DateTime dateTime = DateUtil.parse(str); DateTime dateTime = DateUtil.parse(str);
Assertions.assertNotNull(dateTime); 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"; str = "2020-02-06 01:58:00.00002";
dateTime = DateUtil.parse(str); dateTime = DateUtil.parse(str);
Assertions.assertNotNull(dateTime); 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"; str = "2020-02-06 01:58:00.111000";
dateTime = DateUtil.parse(str); dateTime = DateUtil.parse(str);
Assertions.assertNotNull(dateTime); 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"; str = "2020-02-06 01:58:00.111";
dateTime = DateUtil.parse(str); dateTime = DateUtil.parse(str);
Assertions.assertNotNull(dateTime); 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() { public void parseDateTest() {
final String dateStr = "2018-4-10"; final String dateStr = "2018-4-10";
final Date date = DateUtil.parse(dateStr); 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); Assertions.assertEquals("2018-04-10", format);
} }
@@ -645,7 +645,7 @@ public class DateUtilTest {
dateStr1 = "2018-09-13T13:34:36.999+0800"; dateStr1 = "2018-09-13T13:34:36.999+0800";
dt = DateUtil.parse(dateStr1); 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")); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
dateStr = Objects.requireNonNull(dt).toString(simpleDateFormat); dateStr = Objects.requireNonNull(dt).toString(simpleDateFormat);
Assertions.assertEquals("2018-09-13 13:34:36.999", dateStr); Assertions.assertEquals("2018-09-13 13:34:36.999", dateStr);
@@ -705,7 +705,7 @@ public class DateUtilTest {
public void parseCSTTest() { public void parseCSTTest() {
final String dateStr = "Wed Sep 16 11:26:23 +0800 2009"; 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",会导致相差一个小时 // Asia/Shanghai是以地区命名的地区标准时在中国叫CST因此如果解析CST时不使用"Asia/Shanghai"而使用"GMT+08:00",会导致相差一个小时
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
final DateTime parse = DateUtil.parse(dateStr, sdf); final DateTime parse = DateUtil.parse(dateStr, sdf);
@@ -719,11 +719,11 @@ public class DateUtilTest {
public void parseCSTTest2() { public void parseCSTTest2() {
final String dateStr = "Wed Sep 16 11:26:23 CST 2009"; 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")); sdf.setTimeZone(TimeZone.getTimeZone("America/Chicago"));
final DateTime parse = DateUtil.parse(dateStr, sdf); 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); final DateTime parse2 = DateUtil.parse(dateStr, fdf);
Assertions.assertEquals(parse, parse2); Assertions.assertEquals(parse, parse2);
@@ -788,14 +788,14 @@ public class DateUtilTest {
final Date date2 = DateUtil.parse("2021-04-13 23:59:10"); 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));
Assertions.assertEquals(1, DateUtil.compare(date1, date2, DatePattern.NORM_DATETIME_PATTERN)); Assertions.assertEquals(1, DateUtil.compare(date1, date2, DateFormatPool.NORM_DATETIME_PATTERN));
Assertions.assertEquals(0, DateUtil.compare(date1, date2, DatePattern.NORM_DATE_PATTERN)); Assertions.assertEquals(0, DateUtil.compare(date1, date2, DateFormatPool.NORM_DATE_PATTERN));
Assertions.assertEquals(0, DateUtil.compare(date1, date2, DatePattern.NORM_DATETIME_MINUTE_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 date11 = DateUtil.parse("2021-04-13 23:59:59.999");
final Date date22 = DateUtil.parse("2021-04-11 23:10:10"); 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 @Test
@@ -830,7 +830,7 @@ public class DateUtilTest {
final LocalDate localDate = localDateTime.toLocalDate(); final LocalDate localDate = localDateTime.toLocalDate();
final DateTime date2 = DateUtil.date(localDate); final DateTime date2 = DateUtil.date(localDate);
Assertions.assertEquals("2017-05-06", Assertions.assertEquals("2017-05-06",
DateUtil.format(date2, DatePattern.NORM_DATE_PATTERN)); DateUtil.format(date2, DateFormatPool.NORM_DATE_PATTERN));
} }
@Test @Test
@@ -890,8 +890,8 @@ public class DateUtilTest {
Assertions.assertEquals(strDate, strDate1); Assertions.assertEquals(strDate, strDate1);
final String strDate2 = "2019-12-01 17:02:30.111"; final String strDate2 = "2019-12-01 17:02:30.111";
ldt = TimeUtil.parse(strDate2, DatePattern.NORM_DATETIME_MS_PATTERN); ldt = TimeUtil.parse(strDate2, DateFormatPool.NORM_DATETIME_MS_PATTERN);
strDate1 = DateUtil.format(ldt, DatePattern.NORM_DATETIME_PATTERN); strDate1 = DateUtil.format(ldt, DateFormatPool.NORM_DATETIME_PATTERN);
Assertions.assertEquals(strDate, strDate1); Assertions.assertEquals(strDate, strDate1);
} }
@@ -900,7 +900,7 @@ public class DateUtilTest {
// 测试字符串与LocalDateTime的互相转换 // 测试字符串与LocalDateTime的互相转换
final String strDate = "2019-12-01"; final String strDate = "2019-12-01";
final LocalDateTime localDateTime = TimeUtil.parse(strDate, "yyyy-MM-dd"); 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 @Test
@@ -975,7 +975,7 @@ public class DateUtilTest {
Assertions.assertThrows(DateException.class, ()->{ Assertions.assertThrows(DateException.class, ()->{
//https://github.com/dromara/hutool/issues/1332 //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); calendar.set(2021, Calendar.JULY, 14, 23, 59, 59);
final Date date = new DateTime(calendar); 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, DateFormatPool.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, DateFormatPool.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_PATTERN));
} }
@Test @Test
public void formatNormDateTimeFormatterTest() { 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); Assertions.assertEquals("2021-07-14 10:05:38", format);
format = DateUtil.format(TimeUtil.parseByISO("2021-07-14T10:05:38"), format = DateUtil.format(TimeUtil.parseByISO("2021-07-14T10:05:38"),
@@ -1024,7 +1024,7 @@ public class DateUtilTest {
@Test @Test
public void parseByDateTimeFormatterTest() { 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()); Assertions.assertEquals("2021-12-01 00:00:00", parse.toString());
} }

View File

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

View File

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

View File

@@ -27,7 +27,7 @@ public class TimeZoneTest {
@Test @Test
public void timeZoneConvertTest() { public void timeZoneConvertTest() {
final DateTime dt = DateUtil.parse("2018-07-10 21:44:32", // 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()); Assertions.assertEquals("2018-07-10 21:44:32", dt.toString());
dt.setTimeZone(TimeZone.getTimeZone("Europe/London")); dt.setTimeZone(TimeZone.getTimeZone("Europe/London"));

View File

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

View File

@@ -20,7 +20,7 @@ import lombok.Data;
import org.dromara.hutool.core.annotation.Alias; import org.dromara.hutool.core.annotation.Alias;
import org.dromara.hutool.core.annotation.PropIgnore; import org.dromara.hutool.core.annotation.PropIgnore;
import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.collection.ListUtil;
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.date.DateUtil;
import org.dromara.hutool.core.date.format.GlobalCustomFormat; import org.dromara.hutool.core.date.format.GlobalCustomFormat;
import org.dromara.hutool.core.io.resource.ResourceUtil; import org.dromara.hutool.core.io.resource.ResourceUtil;
@@ -74,7 +74,7 @@ public class JSONObjectTest {
*/ */
@Test @Test
public void toStringTest3() { public void toStringTest3() {
final JSONObject json = JSONUtil.ofObj(JSONConfig.of().setDateFormat(DatePattern.NORM_DATE_PATTERN))// final JSONObject json = JSONUtil.ofObj(JSONConfig.of().setDateFormat(DateFormatPool.NORM_DATE_PATTERN))//
.putValue("dateTime", DateUtil.parse("2019-05-02 22:12:01")); .putValue("dateTime", DateUtil.parse("2019-05-02 22:12:01"));
assertEquals("{\"dateTime\":\"2019-05-02\"}", json.toString()); assertEquals("{\"dateTime\":\"2019-05-02\"}", json.toString());
} }
@@ -85,7 +85,7 @@ public class JSONObjectTest {
assert json != null; assert json != null;
assertEquals("{\"date\":1557314301000}", json.toString()); assertEquals("{\"date\":1557314301000}", json.toString());
json = JSONUtil.ofObj(JSONConfig.of().setDateFormat(DatePattern.NORM_DATE_PATTERN)) json = JSONUtil.ofObj(JSONConfig.of().setDateFormat(DateFormatPool.NORM_DATE_PATTERN))
.putValue("date", DateUtil.parse("2019-05-08 19:18:21")); .putValue("date", DateUtil.parse("2019-05-08 19:18:21"));
assertEquals("{\"date\":\"2019-05-08\"}", json.toString()); assertEquals("{\"date\":\"2019-05-08\"}", json.toString());
} }

View File

@@ -17,7 +17,7 @@
package org.dromara.hutool.json.jwt; package org.dromara.hutool.json.jwt;
import lombok.Data; import lombok.Data;
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.date.DateUtil;
import org.dromara.hutool.core.reflect.TypeReference; import org.dromara.hutool.core.reflect.TypeReference;
import org.dromara.hutool.core.util.ByteUtil; import org.dromara.hutool.core.util.ByteUtil;
@@ -179,7 +179,7 @@ public class JWTTest {
// 签发时间早于被检查的时间 // 签发时间早于被检查的时间
final Date date = JWT.of(token).getPayload().getClaimsJson().getDate(JWTPayload.ISSUED_AT); final Date date = JWT.of(token).getPayload().getClaimsJson().getDate(JWTPayload.ISSUED_AT);
Assertions.assertEquals("2022-02-02", DateUtil.format(date, DatePattern.NORM_DATE_PATTERN)); Assertions.assertEquals("2022-02-02", DateUtil.format(date, DateFormatPool.NORM_DATE_PATTERN));
} }
@Test @Test