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;
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.DateUtil;
import org.dromara.hutool.core.lang.Assert;
@ -188,7 +188,7 @@ public class CIN {
*/
public DateTime getBirthDate() {
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
*/
public class DatePattern {
public class DateFormatPool {
// region Normal
//================================================== Normal ==================================================
@ -275,7 +275,7 @@ public class DatePattern {
* jdk8 bug at: https://bugs.openjdk.java.net/browse/JDK-8031085
*/
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)
.toFormatter();
// endregion

View File

@ -127,7 +127,7 @@ public class DateTime extends Date {
* @param dateStr Date字符串
* @param format 格式
* @return this
* @see DatePattern
* @see DateFormatPool
*/
public static DateTime of(final String dateStr, final String format) {
return new DateTime(dateStr, format);
@ -294,7 +294,7 @@ public class DateTime extends Date {
*
* @param dateStr Date字符串
* @param format 格式
* @see DatePattern
* @see DateFormatPool
*/
public DateTime(final CharSequence dateStr, final String format) {
this(GlobalCustomFormat.isCustomFormat(format)
@ -307,7 +307,7 @@ public class DateTime extends Date {
*
* @param dateStr Date字符串
* @param dateFormat 格式化器 {@link SimpleDateFormat}
* @see DatePattern
* @see DateFormatPool
*/
public DateTime(final CharSequence dateStr, final DateFormat dateFormat) {
this(parse(dateStr, dateFormat), dateFormat.getTimeZone());
@ -329,7 +329,7 @@ public class DateTime extends Date {
*
* @param dateStr Date字符串
* @param dateParser 格式化器 {@link DateParser}可以使用 {@link FastDateFormat}
* @see DatePattern
* @see DateFormatPool
*/
public DateTime(final CharSequence dateStr, final PositionDateParser dateParser) {
this(dateStr, dateParser, SystemUtil.getBoolean(SystemUtil.HUTOOL_DATE_LENIENT, true));
@ -341,7 +341,7 @@ public class DateTime extends Date {
* @param dateStr Date字符串
* @param dateParser 格式化器 {@link DateParser}可以使用 {@link FastDateFormat}
* @param lenient 是否宽容模式
* @see DatePattern
* @see DateFormatPool
*/
public DateTime(final CharSequence dateStr, final PositionDateParser dateParser, final boolean lenient) {
this(parse(dateStr, dateParser, lenient));
@ -1004,9 +1004,9 @@ public class DateTime extends Date {
*/
public String toString(final TimeZone 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() {
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() {
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
*/
public String toString(final String format) {
@ -1072,7 +1072,7 @@ public class DateTime extends Date {
* @return 输出精确到毫秒的标准日期形式
*/
public String toMsStr() {
return toString(DatePattern.NORM_DATETIME_MS_FORMAT);
return toString(DateFormatPool.NORM_DATETIME_MS_FORMAT);
}
// -------------------------------------------------------------------- toString end

View File

@ -46,7 +46,7 @@ import java.util.stream.Collectors;
*
* @author Looly
* @see TimeUtil java8日志工具类
* @see DatePattern 日期常用格式工具类
* @see DateFormatPool 日期常用格式工具类
*/
public class DateUtil {
@ -526,7 +526,7 @@ public class DateUtil {
* 根据特定格式格式化日期
*
* @param localDateTime 被格式化的日期
* @param format 日期格式常用格式见 {@link DatePattern}
* @param format 日期格式常用格式见 {@link DateFormatPool}
* @return 格式化后的字符串
*/
public static String format(final LocalDateTime localDateTime, final String format) {
@ -537,7 +537,7 @@ public class DateUtil {
* 根据特定格式格式化日期
*
* @param date 被格式化的日期
* @param format 日期格式常用格式见 {@link DatePattern} {@link DatePattern#NORM_DATETIME_PATTERN}
* @param format 日期格式常用格式见 {@link DateFormatPool} {@link DateFormatPool#NORM_DATETIME_PATTERN}
* @return 格式化后的字符串
*/
public static String format(final Date date, final String format) {
@ -561,7 +561,7 @@ public class DateUtil {
* 根据特定格式格式化日期
*
* @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 格式化后的字符串
*/
public static String format(final Date date, final DatePrinter format) {
@ -589,7 +589,7 @@ public class DateUtil {
* 根据特定格式格式化日期
*
* @param date 被格式化的日期
* @param format {@link SimpleDateFormat} {@link DatePattern#NORM_DATETIME_FORMATTER}
* @param format {@link SimpleDateFormat} {@link DateFormatPool#NORM_DATETIME_FORMATTER}
* @return 格式化后的字符串
* @since 5.0.0
*/
@ -613,7 +613,7 @@ public class DateUtil {
if (null == date) {
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) {
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) {
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) {
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) {
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);
@ -1814,7 +1814,7 @@ public class DateUtil {
*
* @param date1 日期1
* @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
* @author dazer
* @since 5.6.4

View File

@ -40,7 +40,7 @@ import java.util.function.Function;
*
* @author looly
* @see DateUtil java7及其以下版本使用Date工具类
* @see DatePattern 常用格式工具类
* @see DateFormatPool 常用格式工具类
* @since 6.0.0
*/
public class TimeUtil extends TemporalAccessorUtil {
@ -298,7 +298,7 @@ public class TimeUtil extends TemporalAccessorUtil {
if (StrUtil.contains(text, 'T')) {
return parse(text, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
} 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
//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
if (StrUtil.startWithIgnoreEquals(format, DatePattern.PURE_DATETIME_PATTERN) && format.endsWith("S")) {
if (StrUtil.startWithIgnoreEquals(format, DateFormatPool.PURE_DATETIME_PATTERN) && format.endsWith("S")) {
// 需要填充的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) {
//将yyyyMMddHHmmssSyyyyMMddHHmmssSS的日期统一替换为yyyyMMddHHmmssSSS格式用0补
text += StrUtil.repeat('0', paddingWidth);
}
formatter = DatePattern.PURE_DATETIME_MS_FORMATTER;
formatter = DateFormatPool.PURE_DATETIME_MS_FORMATTER;
} else {
formatter = DateTimeFormatter.ofPattern(format);
}
@ -411,7 +411,7 @@ public class TimeUtil extends TemporalAccessorUtil {
* @since 5.3.11
*/
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
*/
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
* @since 2.16.2
*/
public interface DateBasic {

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -17,7 +17,7 @@
package org.dromara.hutool.core.date.format;
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.PositionDateParser;
@ -47,7 +47,6 @@ import java.util.TimeZone;
* </p>
* Thanks to Apache Commons Lang 3.5
*
* @since 2.16.2
*/
public class FastDateFormat extends Format implements PositionDateParser, DatePrinter {
private static final long serialVersionUID = 8097890768636183236L;
@ -413,7 +412,7 @@ public class FastDateFormat extends Format implements PositionDateParser, DatePr
/**
* 便捷获取 DateTimeFormatter
* 由于 {@link DatePattern} 很大一部分的格式没有提供 {@link DateTimeFormatter},因此这里提供快捷获取方式
* 由于 {@link DateFormatPool} 很大一部分的格式没有提供 {@link DateTimeFormatter},因此这里提供快捷获取方式
*
* @return DateTimeFormatter
* @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;
}
abstract boolean parse(FastDateParser parser, Calendar calendar, CharSequence source, ParsePosition pos, int maxWidth);
}
/**
* 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;
@ -361,7 +361,7 @@ public class FastDateParser extends SimpleDateBasic implements PositionDateParse
}
@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()));
if (!matcher.lookingAt()) {
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
*/
private static class CopyQuotedStrategy extends Strategy {
private static class CopyQuotedStrategy implements Strategy {
final private String formatField;
@ -491,7 +491,7 @@ public class FastDateParser extends SimpleDateBasic implements PositionDateParse
}
@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) {
final int sIdx = idx + pos.getIndex();
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
*/
private static class NumberStrategy extends Strategy {
private static class NumberStrategy implements Strategy {
private final int field;
/**
@ -558,12 +558,12 @@ public class FastDateParser extends SimpleDateBasic implements PositionDateParse
}
@Override
boolean isNumber() {
public boolean isNumber() {
return true;
}
@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 last = source.length();

View File

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

View File

@ -20,7 +20,7 @@ import lombok.Data;
import org.dromara.hutool.core.annotation.Alias;
import org.dromara.hutool.core.annotation.PropIgnore;
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.format.GlobalCustomFormat;
import org.dromara.hutool.core.io.resource.ResourceUtil;
@ -74,7 +74,7 @@ public class JSONObjectTest {
*/
@Test
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"));
assertEquals("{\"dateTime\":\"2019-05-02\"}", json.toString());
}
@ -85,7 +85,7 @@ public class JSONObjectTest {
assert json != null;
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"));
assertEquals("{\"date\":\"2019-05-08\"}", json.toString());
}

View File

@ -17,7 +17,7 @@
package org.dromara.hutool.json.jwt;
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.reflect.TypeReference;
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);
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