Package org.jboss.resteasy.util

## Class DateUtil

- java.lang.Object
- - org.jboss.resteasy.util.DateUtil

-     public class DateUtil
      extends Object

  A utility class for parsing and formatting HTTP dates as used in cookies and other headers. This class handles dates as defined by RFC 2616 section 3.3.1 as well as some other common non-standard formats.
  Author:
    Christopher Brown, Michael Becke

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `DateUtil.DateParseException` |

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `PATTERN_ASCTIME` | Date format pattern used to parse HTTP date headers in ANSI C `asctime()` format.
    `static String` | `PATTERN_RFC1036` | Date format pattern used to parse HTTP date headers in RFC 1036 format.
    `static String` | `PATTERN_RFC1123` | Date format pattern used to parse HTTP date headers in RFC 1123 format.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static String` | `formatDate​(Date date)` | Formats the given date according to the RFC 1123 pattern.
    `static String` | `formatDate​(Date date, String pattern)` | Formats the given date according to the specified pattern.
    `static Date` | `parseDate​(String dateValue)` | Parses a date value.
    `static Date` | `parseDate​(String dateValue, Collection<String> dateFormats)` | Parses the date value using the given date formats.
    `static Date` | `parseDate​(String dateValue, Collection<String> dateFormats, Date startDate)` | Parses the date value using the given date formats.

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

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

- - ### Field Detail

    - #### PATTERN_RFC1123

          public static final String PATTERN_RFC1123

      Date format pattern used to parse HTTP date headers in RFC 1123 format.
      See Also:
        Constant Field Values

    - #### PATTERN_RFC1036

          public static final String PATTERN_RFC1036

      Date format pattern used to parse HTTP date headers in RFC 1036 format.
      See Also:
        Constant Field Values

    - #### PATTERN_ASCTIME

          public static final String PATTERN_ASCTIME

      Date format pattern used to parse HTTP date headers in ANSI C `asctime()` format.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### parseDate

          public static Date parseDate​(String dateValue)
                                throws DateUtil.DateParseException

      Parses a date value. The formats used for parsing the date value are retrieved from the default http params.
      Parameters:
        `dateValue` - the date value to parse
      Returns:
        the parsed date
      Throws:
        `DateUtil.DateParseException` - if the value could not be parsed using any of the supported date formats

    - #### parseDate

          public static Date parseDate​(String dateValue,
                                       Collection<String> dateFormats)
                                throws DateUtil.DateParseException

      Parses the date value using the given date formats.
      Parameters:
        `dateValue` - the date value to parse
        `dateFormats` - the date formats to use
      Returns:
        the parsed date
      Throws:
        `DateUtil.DateParseException` - if none of the dataFormats could parse the dateValue

    - #### parseDate

          public static Date parseDate​(String dateValue,
                                       Collection<String> dateFormats,
                                       Date startDate)
                                throws DateUtil.DateParseException

      Parses the date value using the given date formats.
      Parameters:
        `dateValue` - the date value to parse
        `dateFormats` - the date formats to use
        `startDate` - During parsing, two digit years will be placed in the range `startDate` to `startDate + 100 years`. This value may be `null`. When `null` is given as a parameter, year `2000` will be used.
      Returns:
        the parsed date
      Throws:
        `DateUtil.DateParseException` - if none of the dataFormats could parse the dateValue

    - #### formatDate

          public static String formatDate​(Date date)

      Formats the given date according to the RFC 1123 pattern.
      Parameters:
        `date` - The date to format.
      Returns:
        An RFC 1123 formatted date string.
      See Also:
        `PATTERN_RFC1123`

    - #### formatDate

          public static String formatDate​(Date date,
                                          String pattern)

      Formats the given date according to the specified pattern. The pattern must conform to that used by the `simple date format` class.
      Parameters:
        `date` - The date to format.
        `pattern` - The pattern to use for formatting the date.
      Returns:
        A formatted date string.
      Throws:
        `IllegalArgumentException` - If the given date pattern is invalid.
      See Also:
        `SimpleDateFormat`