# Class DateTimeFormatterPatternProvider

java.lang.Object
java.util.spi.LocaleServiceProvider
java.time.format.DateTimeFormatterPatternProvider

public abstract class DateTimeFormatterPatternProvider extends LocaleServiceProvider
Service Provider Interface for retrieving localized patterns used by `DateTimeFormatter` and `DateTimeFormatterBuilder` classes. The methods in this class provide localized format pattern strings for use with methods such as `ofLocalizedDateTime(FormatStyle)` and `appendLocalized(FormatStyle, FormatStyle)`. For details on using the Locale Sensitive SPI, see `LocaleServiceProvider`.

Since:
  27

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`DateTimeFormatterPatternProvider()`
Sole constructor.

## Method Summary

Modifier and Type
Method
Description
`abstract String`
`getDateTimeFormatterPattern(String requestedTemplate, String calType, Locale locale)`
Returns the localized pattern string for the requested template, calendar type, and locale.
`abstract String`
`getDateTimeFormatterPattern(FormatStyle dateStyle, FormatStyle timeStyle, String calType, Locale locale)`
Returns the localized pattern string for the date style, time style, calendar type, and locale.

### Methods declared in class LocaleServiceProvider

`getAvailableLocales, isSupportedLocale`
Modifier and Type
Method
Description
`abstract Locale[]`
`getAvailableLocales()`
Returns an array of all locales for which this locale service provider can provide localized objects or names.
`boolean`
`isSupportedLocale(Locale locale)`
Returns `true` if the given `locale` is supported by this locale service provider.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

## Constructor Details

### DateTimeFormatterPatternProvider

protected DateTimeFormatterPatternProvider()
Sole constructor. (For invocation by subclass constructors, typically implicit.)

## Method Details

### getDateTimeFormatterPattern

public abstract String getDateTimeFormatterPattern(FormatStyle dateStyle, FormatStyle timeStyle, String calType, Locale locale)
Returns the localized pattern string for the date style, time style, calendar type, and locale. Either `dateStyle` or `timeStyle` may be `null`. In such cases, the returned pattern represents only the time or only the date, respectively. If both are `null`, an `IllegalArgumentException` is thrown.

Parameters:
  `dateStyle` - `FormatStyle` representing date style. `null` for time-only pattern
  `timeStyle` - `FormatStyle` representing time style. `null` for date-only pattern
  `calType` - Non-null `String` representing a CLDR/LDML calendar type, such as "japanese", "iso8601".
  `locale` - `Locale` used to obtain the localized pattern. Non-null.
Returns:
  the localized pattern string for the date style, time style, calendar type, and locale
Throws:
  `IllegalArgumentException` - if both `dateStyle` and `timeStyle` are `null`.
  `DateTimeException` - if no formatting pattern is available for the specified arguments.
  `NullPointerException` - if `calType` or `locale` is `null`.
See Also:
  - `Chronology.getCalendarType()`

### getDateTimeFormatterPattern

public abstract String getDateTimeFormatterPattern(String requestedTemplate, String calType, Locale locale)
Returns the localized pattern string for the requested template, calendar type, and locale. The `requestedTemplate` must match the regular expression described in `DateTimeFormatterBuilder.appendLocalized(String)`; otherwise, an `IllegalArgumentException` is thrown.

Parameters:
  `requestedTemplate` - requested template, Non-null.
  `calType` - Non-null `String` representing a CLDR/LDML calendar type, such as "japanese", "iso8601".
  `locale` - the `Locale` used to obtain the localized pattern. Non-null.
Returns:
  the localized pattern string for the requested template, calendar type, and locale
Throws:
  `IllegalArgumentException` - if `requestedTemplate` does not match the regular expression syntax described in `appendLocalized(String)`.
  `DateTimeException` - if no formatting pattern is available for the specified arguments.
  `NullPointerException` - if `requestedTemplate`, `calType`, or `locale` is `null`.
See Also:
  - `DateTimeFormatterBuilder.appendLocalized(String)`
  - `Chronology.getCalendarType()`