Module java.base
Package java.text.spi

## Class DateFormatProvider

- java.lang.Object
- - java.util.spi.LocaleServiceProvider
  - - java.text.spi.DateFormatProvider

-     public abstract class DateFormatProvider
      extends LocaleServiceProvider

  An abstract class for service providers that provide concrete implementations of the `DateFormat` class.
  Since:
    1.6

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `DateFormatProvider()` | Sole constructor.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract DateFormat` | `getDateInstance​(int style, Locale locale)` | Returns a new `DateFormat` instance which formats date with the given formatting style for the specified locale.
    `abstract DateFormat` | `getDateTimeInstance​(int dateStyle, int timeStyle, Locale locale)` | Returns a new `DateFormat` instance which formats date and time with the given formatting style for the specified locale.
    `abstract DateFormat` | `getTimeInstance​(int style, Locale locale)` | Returns a new `DateFormat` instance which formats time with the given formatting style for the specified locale.

    - ### Methods declared in class java.util.spi.LocaleServiceProvider

      `getAvailableLocales, isSupportedLocale`

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DateFormatProvider

          protected DateFormatProvider()

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

  - ### Method Detail

    - #### getTimeInstance

          public abstract DateFormat getTimeInstance​(int style,
                                                     Locale locale)

      Returns a new `DateFormat` instance which formats time with the given formatting style for the specified locale.
      Parameters:
        `style` - the given formatting style. Either one of `DateFormat.SHORT`, `DateFormat.MEDIUM`, `DateFormat.LONG`, or `DateFormat.FULL`.
        `locale` - the desired locale.
      Returns:
        a time formatter.
      Throws:
        `IllegalArgumentException` - if `style` is invalid, or if `locale` isn't one of the locales returned from `getAvailableLocales()`.
        `NullPointerException` - if `locale` is null
      See Also:
        `DateFormat.getTimeInstance(int, java.util.Locale)`

    - #### getDateInstance

          public abstract DateFormat getDateInstance​(int style,
                                                     Locale locale)

      Returns a new `DateFormat` instance which formats date with the given formatting style for the specified locale.
      Parameters:
        `style` - the given formatting style. Either one of `DateFormat.SHORT`, `DateFormat.MEDIUM`, `DateFormat.LONG`, or `DateFormat.FULL`.
        `locale` - the desired locale.
      Returns:
        a date formatter.
      Throws:
        `IllegalArgumentException` - if `style` is invalid, or if `locale` isn't one of the locales returned from `getAvailableLocales()`.
        `NullPointerException` - if `locale` is null
      See Also:
        `DateFormat.getDateInstance(int, java.util.Locale)`

    - #### getDateTimeInstance

          public abstract DateFormat getDateTimeInstance​(int dateStyle,
                                                         int timeStyle,
                                                         Locale locale)

      Returns a new `DateFormat` instance which formats date and time with the given formatting style for the specified locale.
      Parameters:
        `dateStyle` - the given date formatting style. Either one of `DateFormat.SHORT`, `DateFormat.MEDIUM`, `DateFormat.LONG`, or `DateFormat.FULL`.
        `timeStyle` - the given time formatting style. Either one of `DateFormat.SHORT`, `DateFormat.MEDIUM`, `DateFormat.LONG`, or `DateFormat.FULL`.
        `locale` - the desired locale.
      Returns:
        a date/time formatter.
      Throws:
        `IllegalArgumentException` - if `dateStyle` or `timeStyle` is invalid, or if `locale` isn't one of the locales returned from `getAvailableLocales()`.
        `NullPointerException` - if `locale` is null
      See Also:
        `DateFormat.getDateTimeInstance(int, int, java.util.Locale)`