# 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 Details

  - ### DateFormatProvider

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

- ## Method Details

  - ### 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)`