@@ -2,6 +2,7 @@ package cn.hutool.core.date;
import cn.hutool.core.date.format.FastDateFormat ;
import java.time.ZoneId ;
import java.time.format.DateTimeFormatter ;
import java.util.Locale ;
import java.util.TimeZone ;
@@ -39,7 +40,7 @@ public class DatePattern {
/**
* 年月格式 {@link FastDateFormat}: yyyy-MM
*/
public static final DateTimeFormatter NORM_MONTH_FORMATTER = DateTim eFormatter. ofPattern (NORM_MONTH_PATTERN ) ;
public static final DateTimeFormatter NORM_MONTH_FORMATTER = creat eFormatter( NORM_MONTH_PATTERN ) ;
/**
* 简单年月格式: yyyyMM
@@ -52,7 +53,7 @@ public class DatePattern {
/**
* 简单年月格式 {@link FastDateFormat}: yyyyMM
*/
public static final DateTimeFormatter SIMPLE_MONTH_FORMATTER = DateTim eFormatter. ofPattern (SIMPLE_MONTH_PATTERN ) ;
public static final DateTimeFormatter SIMPLE_MONTH_FORMATTER = creat eFormatter( SIMPLE_MONTH_PATTERN ) ;
/**
* 标准日期格式: yyyy-MM-dd
@@ -65,7 +66,7 @@ public class DatePattern {
/**
* 标准日期格式 {@link FastDateFormat}: yyyy-MM-dd
*/
public static final DateTimeFormatter NORM_DATE_FORMATTER = DateTim eFormatter. ofPattern (NORM_DATE_PATTERN ) ;
public static final DateTimeFormatter NORM_DATE_FORMATTER = creat eFormatter( NORM_DATE_PATTERN ) ;
/**
* 标准时间格式: HH:mm:ss
@@ -78,7 +79,7 @@ public class DatePattern {
/**
* 标准日期格式 {@link FastDateFormat}: HH:mm:ss
*/
public static final DateTimeFormatter NORM_TIME_FORMATTER = DateTim eFormatter. ofPattern (NORM_TIME_PATTERN ) ;
public static final DateTimeFormatter NORM_TIME_FORMATTER = creat eFormatter( NORM_TIME_PATTERN ) ;
/**
* 标准日期时间格式, 精确到分: yyyy-MM-dd HH:mm
@@ -91,7 +92,7 @@ public class DatePattern {
/**
* 标准日期格式 {@link FastDateFormat}: yyyy-MM-dd HH:mm
*/
public static final DateTimeFormatter NORM_DATETIME_MINUTE_FORMATTER = DateTim eFormatter. ofPattern (NORM_DATETIME_MINUTE_PATTERN ) ;
public static final DateTimeFormatter NORM_DATETIME_MINUTE_FORMATTER = creat eFormatter( NORM_DATETIME_MINUTE_PATTERN ) ;
/**
* 标准日期时间格式, 精确到秒: yyyy-MM-dd HH:mm:ss
@@ -104,7 +105,7 @@ public class DatePattern {
/**
* 标准日期时间格式,精确到秒 {@link FastDateFormat}: yyyy-MM-dd HH:mm:ss
*/
public static final DateTimeFormatter NORM_DATETIME_FORMATTER = DateTim eFormatter. ofPattern (NORM_DATETIME_PATTERN ) ;
public static final DateTimeFormatter NORM_DATETIME_FORMATTER = creat eFormatter( NORM_DATETIME_PATTERN ) ;
/**
* 标准日期时间格式, 精确到毫秒: yyyy-MM-dd HH:mm:ss.SSS
@@ -117,7 +118,7 @@ public class DatePattern {
/**
* 标准日期时间格式,精确到毫秒 {@link FastDateFormat}: yyyy-MM-dd HH:mm:ss.SSS
*/
public static final DateTimeFormatter NORM_DATETIME_MS_FORMATTER = DateTim eFormatter. ofPattern (NORM_DATETIME_MS_PATTERN ) ;
public static final DateTimeFormatter NORM_DATETIME_MS_FORMATTER = creat eFormatter( NORM_DATETIME_MS_PATTERN ) ;
/**
* ISO8601日期时间格式, 精确到毫秒: yyyy-MM-dd HH:mm:ss,SSS
@@ -130,7 +131,7 @@ public class DatePattern {
/**
* 标准日期格式 {@link FastDateFormat}: yyyy-MM-dd HH:mm:ss,SSS
*/
public static final DateTimeFormatter ISO8601_FORMATTER = DateTim eFormatter. ofPattern (ISO8601_PATTERN ) ;
public static final DateTimeFormatter ISO8601_FORMATTER = creat eFormatter( ISO8601_PATTERN ) ;
/**
* 标准日期格式: yyyy年MM月dd日
@@ -143,7 +144,7 @@ public class DatePattern {
/**
* 标准日期格式 {@link FastDateFormat}: yyyy年MM月dd日
*/
public static final DateTimeFormatter CHINESE_DATE_FORMATTER = DateTim eFormatter. ofPattern (ISO8601_PATTERN ) ;
public static final DateTimeFormatter CHINESE_DATE_FORMATTER = creat eFormatter( ISO8601_PATTERN ) ;
/**
* 标准日期格式: yyyy年MM月dd日 HH时mm分ss秒
@@ -156,7 +157,7 @@ public class DatePattern {
/**
* 标准日期格式 {@link FastDateFormat}: yyyy年MM月dd日HH时mm分ss秒
*/
public static final DateTimeFormatter CHINESE_DATE_TIME_FORMATTER = DateTim eFormatter. ofPattern (CHINESE_DATE_TIME_PATTERN ) ;
public static final DateTimeFormatter CHINESE_DATE_TIME_FORMATTER = creat eFormatter( CHINESE_DATE_TIME_PATTERN ) ;
//-------------------------------------------------------------------------------------------------------------------------------- Pure
/**
@@ -170,7 +171,7 @@ public class DatePattern {
/**
* 标准日期格式 {@link FastDateFormat}: yyyyMMdd
*/
public static final DateTimeFormatter PURE_DATE_FORMATTER = DateTim eFormatter. ofPattern (PURE_DATE_PATTERN ) ;
public static final DateTimeFormatter PURE_DATE_FORMATTER = creat eFormatter( PURE_DATE_PATTERN ) ;
/**
* 标准日期格式: HHmmss
@@ -183,7 +184,7 @@ public class DatePattern {
/**
* 标准日期格式 {@link FastDateFormat}: HHmmss
*/
public static final DateTimeFormatter PURE_TIME_FORMATTER = DateTim eFormatter. ofPattern (PURE_TIME_PATTERN ) ;
public static final DateTimeFormatter PURE_TIME_FORMATTER = creat eFormatter( PURE_TIME_PATTERN ) ;
/**
* 标准日期格式: yyyyMMddHHmmss
@@ -196,7 +197,7 @@ public class DatePattern {
/**
* 标准日期格式 {@link FastDateFormat}: yyyyMMddHHmmss
*/
public static final DateTimeFormatter PURE_DATETIME_FORMATTER = DateTim eFormatter. ofPattern (PURE_DATETIME_PATTERN ) ;
public static final DateTimeFormatter PURE_DATETIME_FORMATTER = creat eFormatter( PURE_DATETIME_PATTERN ) ;
/**
* 标准日期格式: yyyyMMddHHmmssSSS
@@ -209,7 +210,7 @@ public class DatePattern {
/**
* 标准日期格式 {@link FastDateFormat}: yyyyMMddHHmmssSSS
*/
public static final DateTimeFormatter PURE_DATETIME_MS_FORMATTER = DateTim eFormatter. ofPattern (PURE_DATETIME_MS_PATTERN ) ;
public static final DateTimeFormatter PURE_DATETIME_MS_FORMATTER = creat eFormatter( PURE_DATETIME_MS_PATTERN ) ;
//-------------------------------------------------------------------------------------------------------------------------------- Others
/**
@@ -283,4 +284,16 @@ public class DatePattern {
* UTC时间{@link FastDateFormat}: yyyy-MM-dd'T'HH:mm:ssZ
*/
public static final FastDateFormat UTC_MS_WITH_ZONE_OFFSET_FORMAT = FastDateFormat . getInstance ( UTC_MS_WITH_ZONE_OFFSET_PATTERN , TimeZone . getTimeZone ( " UTC " ) ) ;
/**
* 创建并为 {@link DateTimeFormatter} 赋予默认时区和位置信息,默认值为系统默认值。
*
* @param pattern 日期格式
* @return {@link DateTimeFormatter}
* @since 5.7.5
*/
private static DateTimeFormatter createFormatter ( String pattern ) {
return DateTimeFormatter . ofPattern ( pattern , Locale . getDefault ( ) )
. withZone ( ZoneId . systemDefault ( ) ) ;
}
}