Class DateUtils

java.lang.Object
org.apache.hc.client5.http.utils.DateUtils

public final class DateUtils 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.
Since:
4.3
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    (package private) static final class 
    A factory for SimpleDateFormats.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final String[]
     
    private static final Date
     
    static final TimeZone
     
    static final String
    Date format pattern used to parse HTTP date headers in ANSI C asctime() format.
    static final String
    Date format pattern used to parse HTTP date headers in RFC 1036 format.
    static final String
    Date format pattern used to parse HTTP date headers in RFC 1123 format.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    This class should not be instantiated.
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    Clears thread-local variable containing DateFormat cache.
    static String
    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 boolean
    isAfter(org.apache.hc.core5.http.MessageHeaders message1, org.apache.hc.core5.http.MessageHeaders message2, String headerName)
    Tests if the first message is after (newer) than second one using the given message header for comparison.
    static boolean
    isBefore(org.apache.hc.core5.http.MessageHeaders message1, org.apache.hc.core5.http.MessageHeaders message2, String headerName)
    Tests if the first message is before (older) than the second one using the given message header for comparison.
    static Date
    parseDate(String dateValue)
    Parses a date value.
    static Date
    parseDate(String dateValue, String[] dateFormats)
    Parses the date value using the given date formats.
    static Date
    parseDate(String dateValue, String[] dateFormats, Date startDate)
    Parses the date value using the given date formats.
    static Date
    parseDate(org.apache.hc.core5.http.MessageHeaders headers, String headerName)
    Parses a date value from a header with the given name.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • PATTERN_RFC1123

      public static final String PATTERN_RFC1123
      Date format pattern used to parse HTTP date headers in RFC 1123 format.
      See Also:
    • PATTERN_RFC1036

      public static final String PATTERN_RFC1036
      Date format pattern used to parse HTTP date headers in RFC 1036 format.
      See Also:
    • PATTERN_ASCTIME

      public static final String PATTERN_ASCTIME
      Date format pattern used to parse HTTP date headers in ANSI C asctime() format.
      See Also:
    • DEFAULT_PATTERNS

      private static final String[] DEFAULT_PATTERNS
    • DEFAULT_TWO_DIGIT_YEAR_START

      private static final Date DEFAULT_TWO_DIGIT_YEAR_START
    • GMT

      public static final TimeZone GMT
  • Constructor Details

    • DateUtils

      private DateUtils()
      This class should not be instantiated.
  • Method Details

    • parseDate

      public static Date parseDate(String dateValue)
      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 or null if input could not be parsed
    • parseDate

      public static Date parseDate(org.apache.hc.core5.http.MessageHeaders headers, String headerName)
      Parses a date value from a header with the given name.
      Parameters:
      headers - message headers
      headerName - header name
      Returns:
      the parsed date or null if input could not be parsed
      Since:
      5.0
    • isAfter

      public static boolean isAfter(org.apache.hc.core5.http.MessageHeaders message1, org.apache.hc.core5.http.MessageHeaders message2, String headerName)
      Tests if the first message is after (newer) than second one using the given message header for comparison.
      Parameters:
      message1 - the first message
      message2 - the second message
      headerName - header name
      Returns:
      true if both messages contain a header with the given name and the value of the header from the first message is newer that of the second message.
      Since:
      5.0
    • isBefore

      public static boolean isBefore(org.apache.hc.core5.http.MessageHeaders message1, org.apache.hc.core5.http.MessageHeaders message2, String headerName)
      Tests if the first message is before (older) than the second one using the given message header for comparison.
      Parameters:
      message1 - the first message
      message2 - the second message
      headerName - header name
      Returns:
      true if both messages contain a header with the given name and the value of the header from the first message is older that of the second message.
      Since:
      5.0
    • parseDate

      public static Date parseDate(String dateValue, String[] dateFormats)
      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 or null if input could not be parsed
    • parseDate

      public static Date parseDate(String dateValue, String[] dateFormats, Date startDate)
      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 or null if input could not be parsed
    • 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:
    • 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:
    • clearThreadLocal

      public static void clearThreadLocal()
      Clears thread-local variable containing DateFormat cache.
      Since:
      4.3