Class DateFormatter
java.lang.Object
cloud.opencode.base.date.formatter.DateFormatter
Predefined Date Formatters with caching support
预定义的日期格式化器,支持缓存
This class provides commonly used DateTimeFormatter instances and a caching mechanism for custom patterns. All formatters are thread-safe and reusable.
此类提供常用的DateTimeFormatter实例和自定义模式的缓存机制。 所有格式化器都是线程安全的和可重用的。
Features | 主要功能:
- Predefined common formats (ISO, Chinese, etc.) - 预定义常用格式(ISO、中文等)
- Formatter caching for custom patterns - 自定义模式的格式化器缓存
- Thread-safe formatter access - 线程安全的格式化器访问
- Quick format methods - 快速格式化方法
Usage Examples | 使用示例:
// Use predefined formatters
String date = DateFormatter.NORM_DATE.format(LocalDate.now()); // 2024-01-15
String time = DateFormatter.NORM_TIME.format(LocalTime.now()); // 14:30:45
String dateTime = DateFormatter.NORM_DATETIME.format(LocalDateTime.now()); // 2024-01-15 14:30:45
// Use Chinese format
String chinese = DateFormatter.CHINESE_DATE.format(LocalDate.now()); // 2024年01月15日
// Get cached formatter
DateTimeFormatter custom = DateFormatter.ofPattern("yyyy/MM/dd");
// Quick format
String formatted = DateFormatter.format(LocalDateTime.now(), "yyyy-MM-dd");
Performance | 性能特性:
- Formatter caching reduces object creation - 格式化器缓存减少对象创建
- Thread-safe using ConcurrentHashMap - 使用ConcurrentHashMap保证线程安全
Security | 安全性:
- Thread-safe: Yes - 线程安全: 是
- Immutable formatters: Yes - 不可变格式化器: 是
- Since:
- JDK 25, opencode-base-date V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final DateTimeFormatterChinese date format: yyyy年MM月dd日 (e.g., 2024年01月15日) 中文日期格式:yyyy年MM月dd日(例如:2024年01月15日)static final DateTimeFormatterChinese date format (short): yyyy年M月d日 (e.g., 2024年1月5日) 中文日期格式(短):yyyy年M月d日(例如:2024年1月5日)static final DateTimeFormatterChinese datetime format: yyyy年MM月dd日 HH时mm分ss秒 中文日期时间格式:yyyy年MM月dd日 HH时mm分ss秒static final DateTimeFormatterChinese month format: yyyy年MM月 (e.g., 2024年01月) 中文月份格式:yyyy年MM月(例如:2024年01月)static final DateTimeFormatterChinese time format: HH时mm分ss秒 (e.g., 14时30分45秒) 中文时间格式:HH时mm分ss秒(例如:14时30分45秒)static final DateTimeFormatterFlexible datetime format that tolerates various separators 弹性日期时间格式,容忍各种分隔符static final DateTimeFormatterHTTP date format: EEE, dd MMM yyyy HH:mm:ss 'GMT' (RFC 7231) HTTP日期格式:EEE, dd MMM yyyy HH:mm:ss 'GMT'(RFC 7231)static final DateTimeFormatterISO date format: yyyy-MM-dd (same as DateTimeFormatter.ISO_LOCAL_DATE) ISO日期格式:yyyy-MM-dd(与DateTimeFormatter.ISO_LOCAL_DATE相同)static final DateTimeFormatterISO datetime format: yyyy-MM-dd'T'HH:mm:ss ISO日期时间格式:yyyy-MM-dd'T'HH:mm:ssstatic final DateTimeFormatterISO offset datetime format: yyyy-MM-dd'T'HH:mm:ssXXX ISO偏移日期时间格式:yyyy-MM-dd'T'HH:mm:ssXXXstatic final DateTimeFormatterISO time format: HH:mm:ss (same as DateTimeFormatter.ISO_LOCAL_TIME) ISO时间格式:HH:mm:ss(与DateTimeFormatter.ISO_LOCAL_TIME相同)static final DateTimeFormatterISO zoned datetime format: yyyy-MM-dd'T'HH:mm:ssXXX[VV] ISO带时区日期时间格式:yyyy-MM-dd'T'HH:mm:ssXXX[VV]static final DateTimeFormatterStandard date format: yyyy-MM-dd (e.g., 2024-01-15) 标准日期格式:yyyy-MM-dd(例如:2024-01-15)static final DateTimeFormatterStandard datetime format: yyyy-MM-dd HH:mm:ss (e.g., 2024-01-15 14:30:45) 标准日期时间格式:yyyy-MM-dd HH:mm:ss(例如:2024-01-15 14:30:45)static final DateTimeFormatterDatetime with milliseconds: yyyy-MM-dd HH:mm:ss.SSS 带毫秒的日期时间:yyyy-MM-dd HH:mm:ss.SSSstatic final DateTimeFormatterYear-month format: yyyy-MM (e.g., 2024-01) 年-月格式:yyyy-MM(例如:2024-01)static final DateTimeFormatterStandard time format: HH:mm:ss (e.g., 14:30:45) 标准时间格式:HH:mm:ss(例如:14:30:45)static final DateTimeFormatterTime with milliseconds: HH:mm:ss.SSS 带毫秒的时间:HH:mm:ss.SSSstatic final DateTimeFormatterYear format: yyyy (e.g., 2024) 年份格式:yyyy(例如:2024)static final DateTimeFormatterCompact date format: yyyyMMdd (e.g., 20240115) 紧凑日期格式:yyyyMMdd(例如:20240115)static final DateTimeFormatterCompact datetime format: yyyyMMddHHmmss (e.g., 20240115143045) 紧凑日期时间格式:yyyyMMddHHmmss(例如:20240115143045)static final DateTimeFormatterCompact datetime with milliseconds: yyyyMMddHHmmssSSS 紧凑日期时间带毫秒:yyyyMMddHHmmssSSSstatic final DateTimeFormatterCompact time format: HHmmss (e.g., 143045) 紧凑时间格式:HHmmss(例如:143045) -
Method Summary
Modifier and TypeMethodDescriptionstatic intGets the current cache size 获取当前缓存大小static voidClears the formatter cache 清除格式化器缓存static Stringformat(TemporalAccessor temporal, String pattern) Formats a temporal using the given pattern 使用给定模式格式化时间对象static StringformatChinese(LocalDate date) Formats a temporal to Chinese date format (yyyy年MM月dd日) 将时间对象格式化为中文日期格式(yyyy年MM月dd日)static StringformatChinese(LocalDateTime dateTime) Formats a temporal to Chinese datetime format 将时间对象格式化为中文日期时间格式static StringformatDate(LocalDate date) Formats a LocalDate to standard date format (yyyy-MM-dd) 将LocalDate格式化为标准日期格式(yyyy-MM-dd)static StringformatDateTime(LocalDateTime dateTime) Formats a LocalDateTime to standard datetime format (yyyy-MM-dd HH:mm:ss) 将LocalDateTime格式化为标准日期时间格式(yyyy-MM-dd HH:mm:ss)static StringformatIso(LocalDateTime dateTime) Formats a LocalDateTime to ISO format (yyyy-MM-dd'T'HH:mm:ss) 将LocalDateTime格式化为ISO格式(yyyy-MM-dd'T'HH:mm:ss)static StringformatTime(LocalTime time) Formats a LocalTime to standard time format (HH:mm:ss) 将LocalTime格式化为标准时间格式(HH:mm:ss)static DateTimeFormatterGets or creates a cached DateTimeFormatter for the given pattern 获取或创建给定模式的缓存DateTimeFormatterstatic DateTimeFormatterGets or creates a cached DateTimeFormatter for the given pattern and locale 获取或创建给定模式和区域设置的缓存DateTimeFormatter
-
Field Details
-
NORM_DATE
Standard date format: yyyy-MM-dd (e.g., 2024-01-15) 标准日期格式:yyyy-MM-dd(例如:2024-01-15) -
NORM_TIME
Standard time format: HH:mm:ss (e.g., 14:30:45) 标准时间格式:HH:mm:ss(例如:14:30:45) -
NORM_DATETIME
Standard datetime format: yyyy-MM-dd HH:mm:ss (e.g., 2024-01-15 14:30:45) 标准日期时间格式:yyyy-MM-dd HH:mm:ss(例如:2024-01-15 14:30:45) -
NORM_DATETIME_MS
Datetime with milliseconds: yyyy-MM-dd HH:mm:ss.SSS 带毫秒的日期时间:yyyy-MM-dd HH:mm:ss.SSS -
NORM_TIME_MS
Time with milliseconds: HH:mm:ss.SSS 带毫秒的时间:HH:mm:ss.SSS -
PURE_DATE
Compact date format: yyyyMMdd (e.g., 20240115) 紧凑日期格式:yyyyMMdd(例如:20240115) -
PURE_TIME
Compact time format: HHmmss (e.g., 143045) 紧凑时间格式:HHmmss(例如:143045) -
PURE_DATETIME
Compact datetime format: yyyyMMddHHmmss (e.g., 20240115143045) 紧凑日期时间格式:yyyyMMddHHmmss(例如:20240115143045) -
PURE_DATETIME_MS
Compact datetime with milliseconds: yyyyMMddHHmmssSSS 紧凑日期时间带毫秒:yyyyMMddHHmmssSSS -
CHINESE_DATE
Chinese date format: yyyy年MM月dd日 (e.g., 2024年01月15日) 中文日期格式:yyyy年MM月dd日(例如:2024年01月15日) -
CHINESE_TIME
Chinese time format: HH时mm分ss秒 (e.g., 14时30分45秒) 中文时间格式:HH时mm分ss秒(例如:14时30分45秒) -
CHINESE_DATETIME
Chinese datetime format: yyyy年MM月dd日 HH时mm分ss秒 中文日期时间格式:yyyy年MM月dd日 HH时mm分ss秒 -
CHINESE_DATE_SHORT
Chinese date format (short): yyyy年M月d日 (e.g., 2024年1月5日) 中文日期格式(短):yyyy年M月d日(例如:2024年1月5日) -
ISO_DATE
ISO date format: yyyy-MM-dd (same as DateTimeFormatter.ISO_LOCAL_DATE) ISO日期格式:yyyy-MM-dd(与DateTimeFormatter.ISO_LOCAL_DATE相同) -
ISO_TIME
ISO time format: HH:mm:ss (same as DateTimeFormatter.ISO_LOCAL_TIME) ISO时间格式:HH:mm:ss(与DateTimeFormatter.ISO_LOCAL_TIME相同) -
ISO_DATETIME
ISO datetime format: yyyy-MM-dd'T'HH:mm:ss ISO日期时间格式:yyyy-MM-dd'T'HH:mm:ss -
ISO_OFFSET_DATETIME
ISO offset datetime format: yyyy-MM-dd'T'HH:mm:ssXXX ISO偏移日期时间格式:yyyy-MM-dd'T'HH:mm:ssXXX -
ISO_ZONED_DATETIME
ISO zoned datetime format: yyyy-MM-dd'T'HH:mm:ssXXX[VV] ISO带时区日期时间格式:yyyy-MM-dd'T'HH:mm:ssXXX[VV] -
HTTP_DATE
HTTP date format: EEE, dd MMM yyyy HH:mm:ss 'GMT' (RFC 7231) HTTP日期格式:EEE, dd MMM yyyy HH:mm:ss 'GMT'(RFC 7231) -
NORM_MONTH
Year-month format: yyyy-MM (e.g., 2024-01) 年-月格式:yyyy-MM(例如:2024-01) -
NORM_YEAR
Year format: yyyy (e.g., 2024) 年份格式:yyyy(例如:2024) -
CHINESE_MONTH
Chinese month format: yyyy年MM月 (e.g., 2024年01月) 中文月份格式:yyyy年MM月(例如:2024年01月) -
FLEXIBLE_DATETIME
Flexible datetime format that tolerates various separators 弹性日期时间格式,容忍各种分隔符
-
-
Method Details
-
ofPattern
Gets or creates a cached DateTimeFormatter for the given pattern 获取或创建给定模式的缓存DateTimeFormatter- Parameters:
pattern- the pattern | 模式- Returns:
- the DateTimeFormatter | DateTimeFormatter
- Throws:
NullPointerException- if pattern is null | 如果模式为null则抛出异常IllegalArgumentException- if pattern is invalid | 如果模式无效则抛出异常
-
ofPattern
Gets or creates a cached DateTimeFormatter for the given pattern and locale 获取或创建给定模式和区域设置的缓存DateTimeFormatter- Parameters:
pattern- the pattern | 模式locale- the locale | 区域设置- Returns:
- the DateTimeFormatter | DateTimeFormatter
-
format
Formats a temporal using the given pattern 使用给定模式格式化时间对象- Parameters:
temporal- the temporal | 时间对象pattern- the pattern | 模式- Returns:
- the formatted string | 格式化的字符串
-
formatDate
-
formatTime
-
formatDateTime
Formats a LocalDateTime to standard datetime format (yyyy-MM-dd HH:mm:ss) 将LocalDateTime格式化为标准日期时间格式(yyyy-MM-dd HH:mm:ss)- Parameters:
dateTime- the datetime | 日期时间- Returns:
- the formatted string | 格式化的字符串
-
formatIso
Formats a LocalDateTime to ISO format (yyyy-MM-dd'T'HH:mm:ss) 将LocalDateTime格式化为ISO格式(yyyy-MM-dd'T'HH:mm:ss)- Parameters:
dateTime- the datetime | 日期时间- Returns:
- the formatted string | 格式化的字符串
-
formatChinese
-
formatChinese
Formats a temporal to Chinese datetime format 将时间对象格式化为中文日期时间格式- Parameters:
dateTime- the datetime | 日期时间- Returns:
- the formatted string | 格式化的字符串
-
cacheSize
public static int cacheSize()Gets the current cache size 获取当前缓存大小- Returns:
- the cache size | 缓存大小
-
clearCache
public static void clearCache()Clears the formatter cache 清除格式化器缓存
-