Enum Class PatternType

java.lang.Object
java.lang.Enum<PatternType>
net.time4j.format.expert.PatternType
All Implemented Interfaces:
Serializable, Comparable<PatternType>, java.lang.constant.Constable

public enum PatternType extends Enum<PatternType>

Collection of different format patterns.

Since:
3.0
Author:
Meno Hochschild
See Also:
ChronoFormatter.Builder.addPattern(String, PatternType)
  • Nested Class Summary

    Nested classes/interfaces inherited from class java.lang.Enum

    Enum.EnumDesc<E extends Enum<E>>
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    This standard pattern is applicable on many chronologies and follows the standard LDML of unicode-consortium.
    CLDR-variant with the only difference how the symbol "H" will be interpreted.
    A small subset of CLDR applicable on many calendar chronologies which have registered the associated elements with same symbols.
    Resolves a pattern such that the chronology used in current context determines the meaning of any pattern symbols.
    Follows the format pattern description of class SimpleDateFormat, which is very near, but not exactly the same as CLDR.
    Follows the format pattern description of class DateTimeFormatter, which is very near, but not exactly the same as CLDR and extends it in some details.
  • Method Summary

    Modifier and Type
    Method
    Description
    valueOf​(String name)
    Returns the enum constant of this class with the specified name.
    static PatternType[]
    Returns an array containing the constants of this enum class, in the order they are declared.

    Methods inherited from class java.lang.Enum

    compareTo, describeConstable, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait
  • Enum Constant Details

    • CLDR

      public static final PatternType CLDR

      This standard pattern is applicable on many chronologies and follows the standard LDML of unicode-consortium.

      If not explicitly stated otherwise the count of symbols always controls the minimum count of digits in case of a numerical element. Is an element shorter then the zero digit will be used for padding.

      Non-ISO-chronologies are also supported if their elements define CLDR-symbols.

      Legend
      Element Symbol Description
      ERA G One to three symbols indicate an abbreviation, four symbols indicate the long form and five symbols stand for a letter. The era is based on the expression ChronoHistory.of(format-locale) unless a non-ISO-chronology defines the era in a different way.
      YEAR_OF_ERA y The count of symbols normally controls the minimum count of digits. If it is 2 however then the year will be printed with exact two digits using the attribute Attributes.PIVOT_YEAR. Important: If the era is not present then this symbol will simply be mapped to PlainDate.YEAR (for ISO-like types).
      PlainDate.YEAR_OF_WEEKDATE Y Represents the year in an ISO-8601 week date only and behaves like the calendar year in formatting. The week-based year can deviate from the calendar year however because it is bound to the week cycle.
      PlainDate.YEAR u Proleptic ISO-8601 calendar year. This year never uses a pivot year, also not for "uu". A positive sign will be used exactly if the year has more digits than given by count of symbols. In contrast to the symbol y, this year can never be the historized year-of-era. It is also not supported by non-ISO-chronologies (small deviation from original CLDR).
      YEAR_OF_CYCLE U Can only be processed by calendars which know cyclic years like the Chinese calendar. The count of symbols has to be in range 1-5 but is else not relevant because there is usually no concept of abbreviations versus full names.
      RELATED_GREGORIAN_YEAR r The related gregorian year corresponds to the begin of the calendar year in non-gregorian calender systems. In ISO-calendar systems, it is identical to the proleptic ISO-8601 calendar year. For formatting or parsing, only the ASCII-digits 0-9 will be used, even if other parts of the format use alternative digits or other numeral systems. The count of symbols is defined within the range 1-9.
      PlainDate.QUARTER_OF_YEAR Q One or two symbols for the numerical form, three symbols for the abbreviation, four for the full name and five for a letter symbol (NARROW).
      PlainDate.QUARTER_OF_YEAR q Like Q, but in the version OutputContext.STANDALONE. In some languages (not english) the stand-alone-version requires a special grammar.
      MONTH_OF_YEAR M One or two symbols for the numerical form, three symbols for the abbreviation, four for the full name and five for a letter symbol (NARROW). Important: If the era is not present then this symbol will simply be mapped to PlainDate.MONTH_OF_YEAR.
      MONTH_OF_YEAR L Like M, but in the version OutputContext.STANDALONE. In some languages (not english) the stand-alone-version requires a special grammar.
      Weekmodel.weekOfYear() w One or two symbols for the country-dependent week of year.
      Weekmodel.weekOfMonth() W One symbol for the country-dependent week of month.
      DAY_OF_MONTH d One or two symbols for the day of month. Important: If the era is not present then this symbol will simply be mapped to PlainDate.DAY_OF_MONTH.
      DAY_OF_YEAR D One, two or three symbols for the day of year. Important: If the era is not present then this symbol will simply be mapped to PlainDate.DAY_OF_YEAR.
      WEEKDAY_IN_MONTH F One symbol for the weekday in month.
      EpochDays.MODIFIED_JULIAN_DATE g The count of symbols usually controls the minimum count of digits of modified julian year, that is the count of days relative to 1858-11-17. Is only supported by calendrical types like PlainDate etc.
      PlainDate.DAY_OF_WEEK E One to three symbols for the abbreviation, four for the full name, five for a letter symbol or six for the short form.
      Weekmodel.localDayOfWeek() e Like E, but if there are only one or two symbols then the formatter will choose the localized numerical form.
      Weekmodel.localDayOfWeek() c Like e, but in the version OutputContext.STANDALONE. In some languages (not english) the stand-alone-version requires a special grammar. However, 2 symbols are not allowed.
      PlainTime.AM_PM_OF_DAY a 1-3 symbols for the short form, 4 symbols for the full text form and 5 symbols for the narrow form.
      DayPeriod.fixed() b 1-3 symbols for the short form, 4 symbols for the full text form and 5 symbols for the narrow form.
      DayPeriod.approximate() B 1-3 symbols for the short form, 4 symbols for the full text form and 5 symbols for the narrow form.
      PlainTime.CLOCK_HOUR_OF_AMPM h One or two symbols for the numerical form.
      PlainTime.DIGITAL_HOUR_OF_DAY H One or two symbols for the numerical form.
      PlainTime.DIGITAL_HOUR_OF_AMPM K One or two symbols for the numerical form.
      PlainTime.CLOCK_HOUR_OF_DAY k One or two symbols for the numerical form.
      PlainTime.MINUTE_OF_HOUR m One or two symbols for the numerical form.
      PlainTime.SECOND_OF_MINUTE s One or two symbols for the numerical form.
      PlainTime.NANO_OF_SECOND S The count of symbols (1-9) controls the minimum and maximum count of digits to be printed. The decimal separation char will not be printed.
      PlainTime.MILLI_OF_DAY A The count of symbols (1-8) controls the minimum count of digits to be printed.
      TIMEZONE_NAME z 1-3 symbols for the abbreviation, 4 symbols for the full timezone name. The specific non-location format will be used, for example "Pacific Daylight Time" (PDT) or "Pacific Standard Time" (PST). This symbol can only be applied on the type Moment.
      TIMEZONE_OFFSET Z 1-3 symbols => see xxxx, 4 symbols => see OOOO, 5 symbols = > see XXXXX.
      LOCALIZED_GMT_OFFSET O One symbol for the abbreviation or 4 symbols for the long variant. The GMT-prefix can be suppressed by help of the format attribute Attributes.NO_GMT_PREFIX. See also ChronoFormatter.Builder.addLongLocalizedOffset() or its short counter part.
      GENERIC_TIMEZONE_NAME v One symbol for the abbreviation or 4 symbols for the long variant. The generic non-location format will be used, for example "Pacific Time" (PT).
      TIMEZONE_ID V The count of pattern symbols must always be 2. This symbol can only be applied on the type Moment.
      ISO_TIMEZONE_OFFSET X One symbol: ±HH[mm], two symbols: ±HHmm, three symbols: ±HH:mm, four symbols: ±HHmm[ss[.{fraction}]], five symbols: ±HH:mm[:ss[.{fraction}]]. If the timezone offset is equal to 0 then the letter "Z" will be used.
      ISO_TIMEZONE_OFFSET x Like X but without the special char "Z" if the timezone offset is equal to 0.

      Special notes for the gregorian calendar (ISO-8601):

      Four-digit-year patterns like "yyyy" do not indicate a fixed upper count of four digits. Instead, the parser processes years with maximum 9 digits.

      Special notes for the Vietnamese calendar:

      There is no era so the symbols "G" and "y" are not supported. Use the cyclic year "U" (maybe in combination with related gregorian year "r") instead.

      Special notes for the Ethiopian calendar:

      The Ethiopian year will use the Ethiopic numerals in Amharic. This default behaviour can be overridden on builder-level. And the clock time (symbol "h") will use the Ethiopian time starting at 6 AM in the morning.

      Warning: CLDR-like date patterns are only applicable when the calendar in question always contains a month for any date. This underlying assumption is not true for example for the French revolutionary calendar.

    • SIMPLE_DATE_FORMAT

      public static final PatternType SIMPLE_DATE_FORMAT

      Follows the format pattern description of class SimpleDateFormat, which is very near, but not exactly the same as CLDR.

      The permitted count of digits is usually unlimited. Users should treat this setting only as approximation to any real implementation of SimpleDateFormat. For example, this pattern style is only applicable on ISO-compatible chronologies. Other deviations from CLDR:

      Legend
      Element Symbol Description
      ISO_DAY_OF_WEEK u Corresponds to the weekday-numbering of ISO-8601-standard (Weekmodel.ISO.localDayOfWeek()), that is: Mo=1, Di=2, Mi=3, Do=4, Fr=5, Sa=6, So=7.
      Weekmodel.boundedWeekOfMonth() W One symbol for the country-dependent week of month.
      PlainTime.MILLI_OF_SECOND S No fractional but only integral display of millisecond.
      QUARTER_OF_YEAR Q Not supported (as work-around: use CLDR).
      QUARTER_OF_YEAR q Not supported (as work-around: use CLDR).
      YEAR_OF_CYCLE U Not supported (as work-around: use CLDR).
      RELATED_GREGORIAN_YEAR r Not supported (as work-around: use CLDR).
      MODIFIED_JULIAN_DATE g Not supported (as work-around: use CLDR).
      {local-day-of-week-number} e Not supported (as work-around: use CLDR).
      {local-day-of-week-number} c Not supported (as work-around: use CLDR).
      PlainTime.AM_PM_OF_DAY a Only the short form is supported.
      DayPeriod.fixed() b Not supported (as work-around: use CLDR).
      DayPeriod.approximate() B Not supported (as work-around: use CLDR).
      RFC_822_TIMEZONE_OFFSET Z Equivalent to CLDR-xx.
      LOCALIZED_GMT_OFFSET O Not supported (as work-around: use CLDR).
      TIMEZONE_ID V Not supported (as work-around: use CLDR).
      ISO_TIMEZONE_OFFSET X Like in CLDR, but with only three symbols as upper limit.
      ISO_TIMEZONE_OFFSET x Not supported (as work-around: use CLDR).
    • THREETEN

      public static final PatternType THREETEN

      Follows the format pattern description of class DateTimeFormatter, which is very near, but not exactly the same as CLDR and extends it in some details.

      Users should treat this setting only as approximation to the real behaviour in Java-8. For example, this pattern style is only applicable on ISO-chronologies. Other deviations from CLDR:

      Legend
      Element Symbol Description
      ERA G Like in CLDR, but related to the proleptic gregorian calendar. It is NOT the historic era.
      YEAR_OF_ERA y Like in CLDR, but related to the proleptic gregorian calendar. It is NOT the historic year of era. Another important difference: It will use the pivot year 2100 for the range 2000-2099 if the two-digit-form is choosen. If you want to configure the pivot year then use PatternType.CLDR instead.
      PlainDate.YEAR_OF_WEEKDATE Y Like in CLDR, but the two-digit-form will use the pivot year 2100 for the range 2000-2099. If you want to configure the pivot year then use PatternType.CLDR instead.
      PlainDate.YEAR u Like in CLDR, but the two-digit-form will use the pivot year 2100 for the range 2000-2099. If you want to configure the pivot year then use PatternType.CLDR and the symbol yy instead.
      YEAR_OF_CYCLE U Not supported (as work-around: use CLDR).
      RELATED_GREGORIAN_YEAR r Not supported (as work-around: use CLDR).
      Weekmodel.boundedWeekOfMonth() W One symbol for the country-dependent week of month.
      PlainDate.DAY_OF_WEEK E Like in CLDR, but no more than five pattern symbols are allowed.
      Weekmodel.localDayOfWeek() e Like in CLDR, but no more than five pattern symbols are allowed.
      Weekmodel.localDayOfWeek() c Like in CLDR, but no more than five pattern symbols are allowed.
      DayPeriod.fixed() b Not supported (as work-around: use CLDR).
      DayPeriod.approximate() B Not supported (as work-around: use CLDR).
      PlainTime.NANO_OF_SECOND n 1-9 symbols allowed, no CLDR-equivalent.
      PlainTime.NANO_OF_DAY N 1-18 symbols allowed, no CLDR-equivalent.
      ChronoFormatter.Builder.padNext(int) p No CLDR-equivalent.
      TIMEZONE_NAME z Similar to CLDR but if applied on "local" types then it behaves like symbol "v" (generic location format).
      Since:
      4.0
    • CLDR_24

      public static final PatternType CLDR_24

      CLDR-variant with the only difference how the symbol "H" will be interpreted.

      Deviations from CLDR:

      Legend
      Element Symbol Description
      PlainTime.HOUR_FROM_0_TO_24 H Hour of day - in full range 0-24 (the value 24 is only permitted if all other time parts are zero).
      Since:
      3.4/4.3
    • CLDR_DATE

      public static final PatternType CLDR_DATE

      A small subset of CLDR applicable on many calendar chronologies which have registered the associated elements with same symbols.

      If not explicitly stated otherwise the count of symbols always controls the minimum count of digits in case of a numerical element. Is an element shorter then the zero digit will be used for padding.

      Legend
      Element Symbol Description
      ERA G One to three symbols indicate an abbreviation, four symbols indicate the long form and five symbols stand for a letter.
      YEAR_OF_ERA y The count of symbols normally controls the minimum count of digits. If it is 2 however then the year will be printed with exact two digits using the attribute Attributes.PIVOT_YEAR.
      YEAR_OF_CYCLE U Can only be processed by calendars which know cyclic years like the Chinese calendar. The count of symbols has to be in range 1-5 but is else not relevant because there is usually no concept of abbreviations versus full names.
      MONTH_OF_YEAR M One or two symbols for the numerical form, three symbols for the abbreviation, four for the full name and five for a letter symbol (NARROW).
      MONTH_OF_YEAR L Like M, but in the version OutputContext.STANDALONE. In some languages (not english) the stand-alone-version requires a special grammar.
      WEEK_OF_YEAR w One or two symbols for the country-dependent week of year.
      WEEK_OF_MONTH W One symbol for the country-dependent week of month.
      DAY_OF_MONTH d One or two symbols for the day of month.
      DAY_OF_YEAR D One, two or three symbols for the day of year.
      DAY_OF_WEEK E One to three symbols for the abbreviation, four for the full name, five for a letter symbol or six for the short form.
      WEEKDAY_IN_MONTH F One symbol for the weekday in month.
      LOCAL_DAY_OF_WEEK e Like E, but if there are only one or two symbols then the formatter will choose the localized numerical form.
      LOCAL_DAY_OF_WEEK c Like e, but in the version OutputContext.STANDALONE. In some languages (not english) the stand-alone-version requires a special grammar. However, 2 symbols are not allowed.
      RELATED_GREGORIAN_YEAR r The related gregorian year corresponds to the begin of the calendar year in non-gregorian calender systems. For formatting or parsing, only the ASCII-digits 0-9 will be used, even if other parts of the format use alternative digits or other numeral systems. The count of symbols is defined within the range 1-9.
      EpochDays.MODIFIED_JULIAN_DATE g The count of symbols usually controls the minimum count of digits of modified julian year, that is the count of days relative to 1858-11-17.
      YEAR_OF_WEEKDATE Y Not supported here. Use only ISO-8601-types in combination with CLDR.
      YEAR u Not supported here. Use only ISO-8601-types in combination with CLDR.

      Special notes for the Vietnamese calendar:

      There is no era so the symbols "G" and "y" are not supported. Use the cyclic year "U" (maybe in combination with related gregorian year "r") instead.

      Special notes for the Ethiopian calendar:

      The Ethiopian year will use the Ethiopic numerals in Amharic. This default behaviour can be overridden on builder-level using a sectional attribute for the number system.

      Warning: CLDR-like date patterns are only applicable when the calendar in question always contains a month for any date. This underlying assumption is not true for example for the French revolutionary calendar.

      Since:
      3.33/4.28
    • DYNAMIC

      public static final PatternType DYNAMIC

      Resolves a pattern such that the chronology used in current context determines the meaning of any pattern symbols.

      In contrast to other pattern types like CLDR, the meaning of pattern symbols is not defined by any external standard. The elements associated with symbols are looked up among the registered elements of a chronology including those which can be found via any chronological extension. This search is case-insensitive. If the symbol is a big letter (A-Z) and if the found element is a text element or an enum-based element then it will be treated as text element, and the count of symbols determines the text width (1 = NARROW, 2 = SHORT, 3 = ABBREVIATED, 4 = WIDE). Otherwise this pattern type tries to resolve the element in question as ChronoElement<Integer> or handle an enum-based element in a numerical way, and the count of symbols will determine the min width of displayed/parsed digits and apply some padding if necessary. The maximum width is always 9, and no sign is used.

      Since:
      5.3
      See Also:
      ChronoElement.getSymbol()
  • Method Details

    • values

      public static PatternType[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static PatternType valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null