Package org.apache.commons.lang3.time

## Class DateFormatUtils

- java.lang.Object
- - org.apache.commons.lang3.time.DateFormatUtils

    public class DateFormatUtils
    extends java.lang.Object

Date and time formatting utilities and constants.

Formatting is performed using the thread-safe `FastDateFormat` class.

Note that the JDK has a bug wherein calling Calendar.get(int) will override any previously called Calendar.clear() calls. See LANG-755.

Since:
  2.0

### Field Summary

Fields
`static FastDateFormat` `ISO_8601_EXTENDED_DATE_FORMAT` ISO 8601 formatter for date without time zone.
`static FastDateFormat` `ISO_8601_EXTENDED_DATETIME_FORMAT` ISO 8601 formatter for date-time without time zone.
`static FastDateFormat` `ISO_8601_EXTENDED_DATETIME_TIME_ZONE_FORMAT` ISO 8601 formatter for date-time with time zone.
`static FastDateFormat` `ISO_8601_EXTENDED_TIME_FORMAT` ISO 8601 formatter for time without time zone.
`static FastDateFormat` `ISO_8601_EXTENDED_TIME_TIME_ZONE_FORMAT` ISO 8601 formatter for time with time zone.
`static FastDateFormat` `ISO_DATE_FORMAT` Deprecated. - as of 4.0, ISO_DATE_FORMAT will be replaced by ISO_8601_EXTENDED_DATE_FORMAT.
`static FastDateFormat` `ISO_DATE_TIME_ZONE_FORMAT` Deprecated. - as of 4.0, ISO_DATE_TIME_ZONE_FORMAT will be removed.
`static FastDateFormat` `ISO_DATETIME_FORMAT` Deprecated. - as of 4.0, ISO_DATETIME_FORMAT will be replaced by ISO_8601_EXTENDED_DATETIME_FORMAT.
`static FastDateFormat` `ISO_DATETIME_TIME_ZONE_FORMAT` Deprecated. - as of 4.0, ISO_DATETIME_TIME_ZONE_FORMAT will be replaced by ISO_8601_EXTENDED_DATETIME_TIME_ZONE_FORMAT.
`static FastDateFormat` `ISO_TIME_FORMAT` Deprecated. - as of 4.0, ISO_TIME_FORMAT will be removed.
`static FastDateFormat` `ISO_TIME_NO_T_FORMAT` Deprecated. - as of 4.0, ISO_TIME_NO_T_FORMAT will be replaced by ISO_8601_EXTENDED_TIME_FORMAT.
`static FastDateFormat` `ISO_TIME_NO_T_TIME_ZONE_FORMAT` Deprecated. - as of 4.0, ISO_TIME_NO_T_TIME_ZONE_FORMAT will be replaced by ISO_8601_EXTENDED_TIME_TIME_ZONE_FORMAT.
`static FastDateFormat` `ISO_TIME_TIME_ZONE_FORMAT` Deprecated. - as of 4.0, ISO_TIME_TIME_ZONE_FORMAT will be removed.
`static FastDateFormat` `SMTP_DATETIME_FORMAT` SMTP (and probably other) date headers.

### Constructor Summary

Constructors
`DateFormatUtils()` DateFormatUtils instances should NOT be constructed in standard programming.

### Method Summary

All Methods Static Methods Concrete Methods
`static java.lang.String` `format​(long millis, java.lang.String pattern)` Formats a date/time into a specific pattern.
`static java.lang.String` `format​(long millis, java.lang.String pattern, java.util.Locale locale)` Formats a date/time into a specific pattern in a locale.
`static java.lang.String` `format​(long millis, java.lang.String pattern, java.util.TimeZone timeZone)` Formats a date/time into a specific pattern in a time zone.
`static java.lang.String` `format​(long millis, java.lang.String pattern, java.util.TimeZone timeZone, java.util.Locale locale)` Formats a date/time into a specific pattern in a time zone and locale.
`static java.lang.String` `format​(java.util.Calendar calendar, java.lang.String pattern)` Formats a calendar into a specific pattern.
`static java.lang.String` `format​(java.util.Calendar calendar, java.lang.String pattern, java.util.Locale locale)` Formats a calendar into a specific pattern in a locale.
`static java.lang.String` `format​(java.util.Calendar calendar, java.lang.String pattern, java.util.TimeZone timeZone)` Formats a calendar into a specific pattern in a time zone.
`static java.lang.String` `format​(java.util.Calendar calendar, java.lang.String pattern, java.util.TimeZone timeZone, java.util.Locale locale)` Formats a calendar into a specific pattern in a time zone and locale.
`static java.lang.String` `format​(java.util.Date date, java.lang.String pattern)` Formats a date/time into a specific pattern.
`static java.lang.String` `format​(java.util.Date date, java.lang.String pattern, java.util.Locale locale)` Formats a date/time into a specific pattern in a locale.
`static java.lang.String` `format​(java.util.Date date, java.lang.String pattern, java.util.TimeZone timeZone)` Formats a date/time into a specific pattern in a time zone.
`static java.lang.String` `format​(java.util.Date date, java.lang.String pattern, java.util.TimeZone timeZone, java.util.Locale locale)` Formats a date/time into a specific pattern in a time zone and locale.
`static java.lang.String` `formatUTC​(long millis, java.lang.String pattern)` Formats a date/time into a specific pattern using the UTC time zone.
`static java.lang.String` `formatUTC​(long millis, java.lang.String pattern, java.util.Locale locale)` Formats a date/time into a specific pattern using the UTC time zone.
`static java.lang.String` `formatUTC​(java.util.Date date, java.lang.String pattern)` Formats a date/time into a specific pattern using the UTC time zone.
`static java.lang.String` `formatUTC​(java.util.Date date, java.lang.String pattern, java.util.Locale locale)` Formats a date/time into a specific pattern using the UTC time zone.

### Methods inherited from class java.lang.Object

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

### Field Detail

#### ISO_8601_EXTENDED_DATETIME_FORMAT

    public static final FastDateFormat ISO_8601_EXTENDED_DATETIME_FORMAT

ISO 8601 formatter for date-time without time zone.

The format used is `yyyy-MM-dd'T'HH:mm:ss`. This format uses the default TimeZone in effect at the time of loading DateFormatUtils class.

Since:
  3.5

#### ISO_DATETIME_FORMAT

    @Deprecated
    public static final FastDateFormat ISO_DATETIME_FORMAT

Deprecated.
- as of 4.0, ISO_DATETIME_FORMAT will be replaced by ISO_8601_EXTENDED_DATETIME_FORMAT.

#### ISO_8601_EXTENDED_DATETIME_TIME_ZONE_FORMAT

    public static final FastDateFormat ISO_8601_EXTENDED_DATETIME_TIME_ZONE_FORMAT

ISO 8601 formatter for date-time with time zone.

The format used is `yyyy-MM-dd'T'HH:mm:ssZZ`. This format uses the default TimeZone in effect at the time of loading DateFormatUtils class.

Since:
  3.5

#### ISO_DATETIME_TIME_ZONE_FORMAT

    @Deprecated
    public static final FastDateFormat ISO_DATETIME_TIME_ZONE_FORMAT

Deprecated.
- as of 4.0, ISO_DATETIME_TIME_ZONE_FORMAT will be replaced by ISO_8601_EXTENDED_DATETIME_TIME_ZONE_FORMAT.

#### ISO_8601_EXTENDED_DATE_FORMAT

    public static final FastDateFormat ISO_8601_EXTENDED_DATE_FORMAT

ISO 8601 formatter for date without time zone.

The format used is `yyyy-MM-dd`. This format uses the default TimeZone in effect at the time of loading DateFormatUtils class.

Since:
  3.5

#### ISO_DATE_FORMAT

    @Deprecated
    public static final FastDateFormat ISO_DATE_FORMAT

Deprecated.
- as of 4.0, ISO_DATE_FORMAT will be replaced by ISO_8601_EXTENDED_DATE_FORMAT.

#### ISO_DATE_TIME_ZONE_FORMAT

    @Deprecated
    public static final FastDateFormat ISO_DATE_TIME_ZONE_FORMAT

Deprecated.
- as of 4.0, ISO_DATE_TIME_ZONE_FORMAT will be removed.
ISO 8601-like formatter for date with time zone.

The format used is `yyyy-MM-ddZZ`. This pattern does not comply with the formal ISO 8601 specification as the standard does not allow a time zone without a time. This format uses the default TimeZone in effect at the time of loading DateFormatUtils class.

#### ISO_TIME_FORMAT

    @Deprecated
    public static final FastDateFormat ISO_TIME_FORMAT

Deprecated.
- as of 4.0, ISO_TIME_FORMAT will be removed.
Non-compliant formatter for time without time zone (ISO 8601 does not prefix 'T' for standalone time value).

The format used is `'T'HH:mm:ss`. This format uses the default TimeZone in effect at the time of loading DateFormatUtils class.

#### ISO_TIME_TIME_ZONE_FORMAT

    @Deprecated
    public static final FastDateFormat ISO_TIME_TIME_ZONE_FORMAT

Deprecated.
- as of 4.0, ISO_TIME_TIME_ZONE_FORMAT will be removed.
Non-compliant formatter for time with time zone (ISO 8601 does not prefix 'T' for standalone time value).

The format used is `'T'HH:mm:ssZZ`. This format uses the default TimeZone in effect at the time of loading DateFormatUtils class.

#### ISO_8601_EXTENDED_TIME_FORMAT

    public static final FastDateFormat ISO_8601_EXTENDED_TIME_FORMAT

ISO 8601 formatter for time without time zone.

The format used is `HH:mm:ss`. This format uses the default TimeZone in effect at the time of loading DateFormatUtils class.

Since:
  3.5

#### ISO_TIME_NO_T_FORMAT

    @Deprecated
    public static final FastDateFormat ISO_TIME_NO_T_FORMAT

Deprecated.
- as of 4.0, ISO_TIME_NO_T_FORMAT will be replaced by ISO_8601_EXTENDED_TIME_FORMAT.

#### ISO_8601_EXTENDED_TIME_TIME_ZONE_FORMAT

    public static final FastDateFormat ISO_8601_EXTENDED_TIME_TIME_ZONE_FORMAT

ISO 8601 formatter for time with time zone.

The format used is `HH:mm:ssZZ`. This format uses the default TimeZone in effect at the time of loading DateFormatUtils class.

Since:
  3.5

#### ISO_TIME_NO_T_TIME_ZONE_FORMAT

    @Deprecated
    public static final FastDateFormat ISO_TIME_NO_T_TIME_ZONE_FORMAT

Deprecated.
- as of 4.0, ISO_TIME_NO_T_TIME_ZONE_FORMAT will be replaced by ISO_8601_EXTENDED_TIME_TIME_ZONE_FORMAT.

#### SMTP_DATETIME_FORMAT

    public static final FastDateFormat SMTP_DATETIME_FORMAT

SMTP (and probably other) date headers.

The format used is `EEE, dd MMM yyyy HH:mm:ss Z` in US locale. This format uses the default TimeZone in effect at the time of loading DateFormatUtils class.

### Constructor Detail

#### DateFormatUtils

    public DateFormatUtils()

DateFormatUtils instances should NOT be constructed in standard programming.

This constructor is public to permit tools that require a JavaBean instance to operate.

### Method Detail

#### formatUTC

    public static java.lang.String formatUTC​(long millis,
                                             java.lang.String pattern)

Formats a date/time into a specific pattern using the UTC time zone.

Parameters:
  `millis` - the date to format expressed in milliseconds
  `pattern` - the pattern to use to format the date, not null
Returns:
  the formatted date

#### formatUTC

    public static java.lang.String formatUTC​(java.util.Date date,
                                             java.lang.String pattern)

Formats a date/time into a specific pattern using the UTC time zone.

Parameters:
  `date` - the date to format, not null
  `pattern` - the pattern to use to format the date, not null
Returns:
  the formatted date

#### formatUTC

    public static java.lang.String formatUTC​(long millis,
                                             java.lang.String pattern,
                                             java.util.Locale locale)

Formats a date/time into a specific pattern using the UTC time zone.

Parameters:
  `millis` - the date to format expressed in milliseconds
  `pattern` - the pattern to use to format the date, not null
  `locale` - the locale to use, may be `null`
Returns:
  the formatted date

#### formatUTC

    public static java.lang.String formatUTC​(java.util.Date date,
                                             java.lang.String pattern,
                                             java.util.Locale locale)

Formats a date/time into a specific pattern using the UTC time zone.

Parameters:
  `date` - the date to format, not null
  `pattern` - the pattern to use to format the date, not null
  `locale` - the locale to use, may be `null`
Returns:
  the formatted date

#### format

    public static java.lang.String format​(long millis,
                                          java.lang.String pattern)

Formats a date/time into a specific pattern.

Parameters:
  `millis` - the date to format expressed in milliseconds
  `pattern` - the pattern to use to format the date, not null
Returns:
  the formatted date

#### format

    public static java.lang.String format​(java.util.Date date,
                                          java.lang.String pattern)

Formats a date/time into a specific pattern.

Parameters:
  `date` - the date to format, not null
  `pattern` - the pattern to use to format the date, not null
Returns:
  the formatted date

#### format

    public static java.lang.String format​(java.util.Calendar calendar,
                                          java.lang.String pattern)

Formats a calendar into a specific pattern.

Parameters:
  `calendar` - the calendar to format, not null
  `pattern` - the pattern to use to format the calendar, not null
Returns:
  the formatted calendar
Since:
  2.4
See Also:
  `FastDateFormat.format(Calendar)`

#### format

    public static java.lang.String format​(long millis,
                                          java.lang.String pattern,
                                          java.util.TimeZone timeZone)

Formats a date/time into a specific pattern in a time zone.

Parameters:
  `millis` - the time expressed in milliseconds
  `pattern` - the pattern to use to format the date, not null
  `timeZone` - the time zone to use, may be `null`
Returns:
  the formatted date

#### format

    public static java.lang.String format​(java.util.Date date,
                                          java.lang.String pattern,
                                          java.util.TimeZone timeZone)

Formats a date/time into a specific pattern in a time zone.

Parameters:
  `date` - the date to format, not null
  `pattern` - the pattern to use to format the date, not null
  `timeZone` - the time zone to use, may be `null`
Returns:
  the formatted date

#### format

    public static java.lang.String format​(java.util.Calendar calendar,
                                          java.lang.String pattern,
                                          java.util.TimeZone timeZone)

Formats a calendar into a specific pattern in a time zone.

Parameters:
  `calendar` - the calendar to format, not null
  `pattern` - the pattern to use to format the calendar, not null
  `timeZone` - the time zone to use, may be `null`
Returns:
  the formatted calendar
Since:
  2.4
See Also:
  `FastDateFormat.format(Calendar)`

#### format

    public static java.lang.String format​(long millis,
                                          java.lang.String pattern,
                                          java.util.Locale locale)

Formats a date/time into a specific pattern in a locale.

Parameters:
  `millis` - the date to format expressed in milliseconds
  `pattern` - the pattern to use to format the date, not null
  `locale` - the locale to use, may be `null`
Returns:
  the formatted date

#### format

    public static java.lang.String format​(java.util.Date date,
                                          java.lang.String pattern,
                                          java.util.Locale locale)

Formats a date/time into a specific pattern in a locale.

Parameters:
  `date` - the date to format, not null
  `pattern` - the pattern to use to format the date, not null
  `locale` - the locale to use, may be `null`
Returns:
  the formatted date

#### format

    public static java.lang.String format​(java.util.Calendar calendar,
                                          java.lang.String pattern,
                                          java.util.Locale locale)

Formats a calendar into a specific pattern in a locale.

Parameters:
  `calendar` - the calendar to format, not null
  `pattern` - the pattern to use to format the calendar, not null
  `locale` - the locale to use, may be `null`
Returns:
  the formatted calendar
Since:
  2.4
See Also:
  `FastDateFormat.format(Calendar)`

#### format

    public static java.lang.String format​(long millis,
                                          java.lang.String pattern,
                                          java.util.TimeZone timeZone,
                                          java.util.Locale locale)

Formats a date/time into a specific pattern in a time zone and locale.

Parameters:
  `millis` - the date to format expressed in milliseconds
  `pattern` - the pattern to use to format the date, not null
  `timeZone` - the time zone to use, may be `null`
  `locale` - the locale to use, may be `null`
Returns:
  the formatted date

#### format

    public static java.lang.String format​(java.util.Date date,
                                          java.lang.String pattern,
                                          java.util.TimeZone timeZone,
                                          java.util.Locale locale)

Formats a date/time into a specific pattern in a time zone and locale.

Parameters:
  `date` - the date to format, not null
  `pattern` - the pattern to use to format the date, not null, not null
  `timeZone` - the time zone to use, may be `null`
  `locale` - the locale to use, may be `null`
Returns:
  the formatted date

#### format

    public static java.lang.String format​(java.util.Calendar calendar,
                                          java.lang.String pattern,
                                          java.util.TimeZone timeZone,
                                          java.util.Locale locale)

Formats a calendar into a specific pattern in a time zone and locale.

Parameters:
  `calendar` - the calendar to format, not null
  `pattern` - the pattern to use to format the calendar, not null
  `timeZone` - the time zone to use, may be `null`
  `locale` - the locale to use, may be `null`
Returns:
  the formatted calendar
Since:
  2.4
See Also:
  `FastDateFormat.format(Calendar)`