All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.neko233.toolchain.common.datetime.DateTimePattern Maven / Gradle / Ivy

package com.neko233.toolchain.common.datetime;


import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
import java.util.regex.Pattern;

/**
 * 日期格式化 Pattern, 提供 class / String
 *
 * @author SolarisNeko
 */
public interface DateTimePattern {

    /**
     * 标准日期时间正则,每个字段支持单个数字或2个数字,包括:
     * 
     *     yyyy-MM-dd HH:mm:ss.SSSSSS
     *     yyyy-MM-dd HH:mm:ss.SSS
     *     yyyy-MM-dd HH:mm:ss
     *     yyyy-MM-dd HH:mm
     *     yyyy-MM-dd
     * 
* * @since 5.3.6 */ Pattern REGEX_NORM = Pattern.compile("\\d{4}-\\d{1,2}-\\d{1,2}(\\s\\d{1,2}:\\d{1,2}(:\\d{1,2})?)?(.\\d{1,6})?"); //-------------------------------------------------------------------------------------------------------------------------------- Normal /** * 年格式:yyyy */ String NORM_YEAR_PATTERN = "yyyy"; /** * 年月格式:yyyy-MM */ String NORM_MONTH_PATTERN = "yyyy-MM"; /** * */ DateTimeFormatter NORM_MONTH_FORMATTER = createFormatter(NORM_MONTH_PATTERN); /** * 简单年月格式:yyyyMM */ String SIMPLE_MONTH_PATTERN = "yyyyMM"; /** * */ DateTimeFormatter SIMPLE_MONTH_FORMATTER = createFormatter(SIMPLE_MONTH_PATTERN); /** * 标准日期格式:yyyy-MM-dd */ String NORM_DATE_PATTERN = "yyyy-MM-dd"; /** * */ DateTimeFormatter NORM_DATE_FORMATTER = createFormatter(NORM_DATE_PATTERN); /** * 标准时间格式:HH:mm:ss */ String NORM_TIME_PATTERN = "HH:mm:ss"; /** * */ DateTimeFormatter NORM_TIME_FORMATTER = createFormatter(NORM_TIME_PATTERN); /** * 标准日期时间格式,精确到分:yyyy-MM-dd HH:mm */ String NORM_DATETIME_MINUTE_PATTERN = "yyyy-MM-dd HH:mm"; /** * */ DateTimeFormatter NORM_DATETIME_MINUTE_FORMATTER = createFormatter(NORM_DATETIME_MINUTE_PATTERN); /** * 标准日期时间格式,精确到秒:yyyy-MM-dd HH:mm:ss */ String NORM_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; /** * */ DateTimeFormatter NORM_DATETIME_FORMATTER = createFormatter(NORM_DATETIME_PATTERN); /** * 标准日期时间格式,精确到毫秒:yyyy-MM-dd HH:mm:ss.SSS */ String NORM_DATETIME_MS_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS"; /** * */ DateTimeFormatter NORM_DATETIME_MS_FORMATTER = createFormatter(NORM_DATETIME_MS_PATTERN); /** * ISO8601日期时间格式,精确到毫秒:yyyy-MM-dd HH:mm:ss,SSS */ String ISO8601_PATTERN = "yyyy-MM-dd HH:mm:ss,SSS"; /** * */ DateTimeFormatter ISO8601_FORMATTER = createFormatter(ISO8601_PATTERN); /** * 标准日期格式:yyyy年MM月dd日 */ String CHINESE_DATE_PATTERN = "yyyy年MM月dd日"; /** * */ DateTimeFormatter CHINESE_DATE_FORMATTER = createFormatter(CHINESE_DATE_PATTERN); /** * 标准日期格式:yyyy年MM月dd日 HH时mm分ss秒 */ String CHINESE_DATE_TIME_PATTERN = "yyyy年MM月dd日HH时mm分ss秒"; /** * */ DateTimeFormatter CHINESE_DATE_TIME_FORMATTER = createFormatter(CHINESE_DATE_TIME_PATTERN); //-------------------------------------------------------------------------------------------------------------------------------- Pure /** * 标准日期格式:yyyyMMdd */ String PURE_DATE_PATTERN = "yyyyMMdd"; /** * */ DateTimeFormatter PURE_DATE_FORMATTER = createFormatter(PURE_DATE_PATTERN); /** * 标准日期格式:HHmmss */ String PURE_TIME_PATTERN = "HHmmss"; /** * */ DateTimeFormatter PURE_TIME_FORMATTER = createFormatter(PURE_TIME_PATTERN); /** * 标准日期格式:yyyyMMddHHmmss */ String PURE_DATETIME_PATTERN = "yyyyMMddHHmmss"; /** * */ DateTimeFormatter PURE_DATETIME_FORMATTER = createFormatter(PURE_DATETIME_PATTERN); /** * 标准日期格式:yyyyMMddHHmmssSSS */ String PURE_DATETIME_MS_PATTERN = "yyyyMMddHHmmssSSS"; /** * */ DateTimeFormatter PURE_DATETIME_MS_FORMATTER = createFormatter(PURE_DATETIME_MS_PATTERN); //-------------------------------------------------------------------------------------------------------------------------------- Others /** * HTTP头中日期时间格式:EEE, dd MMM yyyy HH:mm:ss z */ String HTTP_DATETIME_PATTERN = "EEE, dd MMM yyyy HH:mm:ss z"; /** * JDK中日期时间格式:EEE MMM dd HH:mm:ss zzz yyyy */ String JDK_DATETIME_PATTERN = "EEE MMM dd HH:mm:ss zzz yyyy"; /** * UTC时间:yyyy-MM-dd'T'HH:mm:ss */ String UTC_SIMPLE_PATTERN = "yyyy-MM-dd'T'HH:mm:ss"; /** * UTC时间:yyyy-MM-dd'T'HH:mm:ss.SSS */ String UTC_SIMPLE_MS_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS"; /** * UTC时间:yyyy-MM-dd'T'HH:mm:ss'Z' */ String UTC_PATTERN = "yyyy-MM-dd'T'HH:mm:ss'Z'"; /** * UTC时间:yyyy-MM-dd'T'HH:mm:ssZ */ String UTC_WITH_ZONE_OFFSET_PATTERN = "yyyy-MM-dd'T'HH:mm:ssZ"; /** * UTC时间:yyyy-MM-dd'T'HH:mm:ssXXX */ String UTC_WITH_XXX_OFFSET_PATTERN = "yyyy-MM-dd'T'HH:mm:ssXXX"; /** * UTC时间:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' */ String UTC_MS_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; /** * UTC时间:yyyy-MM-dd'T'HH:mm:ssZ */ String UTC_MS_WITH_ZONE_OFFSET_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"; /** * UTC时间:yyyy-MM-dd'T'HH:mm:ss.SSSXXX */ String UTC_MS_WITH_XXX_OFFSET_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"; /** * 创建并为 {@link DateTimeFormatter} 赋予默认时区和位置信息,默认值为系统默认值。 * * @param pattern 日期格式 * @return {@link DateTimeFormatter} * @since 5.7.5 */ public static DateTimeFormatter createFormatter(String pattern) { return DateTimeFormatter.ofPattern(pattern, Locale.getDefault()).withZone(ZoneId.systemDefault()); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy