GitHub user ashr123 edited a comment on the discussion: Getting current date-time format (or default format)
in addition, why can't all the named patterns be an enum with 3 fields (base pattern, compact postfix and non-compact postfix) and a getter with `boolean compact` parameter that returns the correct pattern: ```java public enum NamedPattern { ABSOLUTE("HH:mm:ss,SSS", "nnnnnn", "SSSSSS"), ABSOLUTE_MICROS("HH:mm:ss,", "nnnnnn", "SSSSSS"), ABSOLUTE_NANOS("HH:mm:ss,", "nnnnnnnnn", "SSSSSSSSS"), ABSOLUTE_PERIOD("HH:mm:ss.SSS", "", ""), COMPACT("yyyyMMddHHmmssSSS", "", ""), DATE("dd MMM yyyy HH:mm:ss,SSS", "", ""), DATE_PERIOD("dd MMM yyyy HH:mm:ss.SSS", "", ""), DEFAULT("yyyy-MM-dd HH:mm:ss,SSS", "", ""), DEFAULT_MICROS("yyyy-MM-dd HH:mm:ss,", "nnnnnn", "SSSSSS"), DEFAULT_NANOS("yyyy-MM-dd HH:mm:ss,", "nnnnnnnnn", "SSSSSSSSS"), DEFAULT_PERIOD("yyyy-MM-dd HH:mm:ss.SSS", "", ""), ISO8601_BASIC("yyyyMMdd'T'HHmmss,SSS", "", ""), ISO8601_BASIC_PERIOD("yyyyMMdd'T'HHmmss.SSS", "", ""), ISO8601("yyyy-MM-dd'T'HH:mm:ss,SSS", "", ""), ISO8601_OFFSET_DATE_TIME_HH("yyyy-MM-dd'T'HH:mm:ss,SSS", "X", "x"), ISO8601_OFFSET_DATE_TIME_HHMM("yyyy-MM-dd'T'HH:mm:ss,SSS", "XX", "xx"), ISO8601_OFFSET_DATE_TIME_HHCMM("yyyy-MM-dd'T'HH:mm:ss,SSS", "XXX", "xxx"), ISO8601_PERIOD("yyyy-MM-dd'T'HH:mm:ss.SSS", "", ""), ISO8601_PERIOD_MICROS("yyyy-MM-dd'T'HH:mm:ss.", "nnnnnn", "SSSSSS"), US_MONTH_DAY_YEAR2_TIME("dd/MM/yy HH:mm:ss.SSS", "", ""), US_MONTH_DAY_YEAR4_TIME("dd/MM/yyyy HH:mm:ss.SSS", "", ""); private final String basePattern, compactPostfix, nonCompactPostfix; NamedPattern(String basePattern, String compactPostfix, String nonCompactPostfix) { this.basePattern = basePattern; this.compactPostfix = compactPostfix; this.nonCompactPostfix = nonCompactPostfix; } public String decodeNamedPattern(boolean isCompact) { return basePattern + (isCompact ? compactPostfix : nonCompactPostfix); } } ``` And inside `DatePatternConverter`: ```java static String decodeNamedPattern(final String pattern) { try { return NamedPattern.valueOf(pattern) .decodeNamedPattern(InstantPatternFormatter.LEGACY_FORMATTERS_ENABLED); } catch (IllegalArgumentException e) { return pattern; } } ``` Or ```java public enum NamedPattern { ABSOLUTE("HH:mm:ss,SSS", "HH:mm:ss,SSS"), ABSOLUTE_MICROS("HH:mm:ss,nnnnnn", "HH:mm:ss,SSSSSS"), ABSOLUTE_NANOS("HH:mm:ss,nnnnnnnnn", "HH:mm:ss,SSSSSSSSS"), ABSOLUTE_PERIOD("HH:mm:ss.SSS", "HH:mm:ss.SSS"), COMPACT("yyyyMMddHHmmssSSS", "yyyyMMddHHmmssSSS"), DATE("dd MMM yyyy HH:mm:ss,SSS", "dd MMM yyyy HH:mm:ss,SSS"), DATE_PERIOD("dd MMM yyyy HH:mm:ss.SSS", "dd MMM yyyy HH:mm:ss.SSS"), DEFAULT("yyyy-MM-dd HH:mm:ss,SSS", "yyyy-MM-dd HH:mm:ss,SSS"), DEFAULT_MICROS("yyyy-MM-dd HH:mm:ss,nnnnnn", "yyyy-MM-dd HH:mm:ss,SSSSSS"), DEFAULT_NANOS("yyyy-MM-dd HH:mm:ss,nnnnnnnnn", "yyyy-MM-dd HH:mm:ss,SSSSSSSSS"), DEFAULT_PERIOD("yyyy-MM-dd HH:mm:ss.SSS", "yyyy-MM-dd HH:mm:ss.SSS"), ISO8601_BASIC("yyyyMMdd'T'HHmmss,SSS", "yyyyMMdd'T'HHmmss,SSS"), ISO8601_BASIC_PERIOD("yyyyMMdd'T'HHmmss.SSS", "yyyyMMdd'T'HHmmss.SSS"), ISO8601("yyyy-MM-dd'T'HH:mm:ss,SSS", "yyyy-MM-dd'T'HH:mm:ss,SSS"), ISO8601_OFFSET_DATE_TIME_HH("yyyy-MM-dd'T'HH:mm:ss,SSSX", "yyyy-MM-dd'T'HH:mm:ss,SSSx"), ISO8601_OFFSET_DATE_TIME_HHMM("yyyy-MM-dd'T'HH:mm:ss,SSSyyyy-MM-dd'T'HH:mm:ss,SSSXX", "yyyy-MM-dd'T'HH:mm:ss,SSSxx"), ISO8601_OFFSET_DATE_TIME_HHCMM("yyyy-MM-dd'T'HH:mm:ss,SSSyyyy-MM-dd'T'HH:mm:ss,SSSXXX", "yyyy-MM-dd'T'HH:mm:ss,SSSxxx"), ISO8601_PERIOD("yyyy-MM-dd'T'HH:mm:ss.SSS", "yyyy-MM-dd'T'HH:mm:ss.SSS"), ISO8601_PERIOD_MICROS("yyyy-MM-dd'T'HH:mm:ss.nnnnnn", "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"), US_MONTH_DAY_YEAR2_TIME("dd/MM/yy HH:mm:ss.SSS", "dd/MM/yy HH:mm:ss.SSS"), US_MONTH_DAY_YEAR4_TIME("dd/MM/yyyy HH:mm:ss.SSS", "dd/MM/yyyy HH:mm:ss.SSS"); private final String compactPattern, nonCompactPattern; NamedPattern(String compactPattern, String nonCompactPattern) { this.compactPattern = compactPattern; this.nonCompactPattern = nonCompactPattern; } public String getCompactPattern() { return compactPattern; } public String getNonCompactPattern() { return nonCompactPattern; } } ``` And ```java static String decodeNamedPattern(final String pattern) { try { final NamedPattern namedPattern = NamedPattern.valueOf(pattern); return InstantPatternFormatter.LEGACY_FORMATTERS_ENABLED ? namedPattern.getCompactPattern() : namedPattern.getNonCompactPattern(); } catch (IllegalArgumentException e) { return pattern; } } ``` GitHub link: https://github.com/apache/logging-log4j2/discussions/3788#discussioncomment-13600805 ---- This is an automatically sent email for dev@logging.apache.org. To unsubscribe, please send an email to: dev-unsubscr...@logging.apache.org