Class DateUtil


  • public class DateUtil
    extends java.lang.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.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.util.Collection DEFAULT_PATTERNS  
      private static java.util.Date DEFAULT_TWO_DIGIT_YEAR_START  
      private static java.util.TimeZone GMT  
      static java.lang.String PATTERN_ASCTIME
      Date format pattern used to parse HTTP date headers in ANSI C asctime() format.
      static java.lang.String PATTERN_RFC1036
      Date format pattern used to parse HTTP date headers in RFC 1036 format.
      static java.lang.String PATTERN_RFC1123
      Date format pattern used to parse HTTP date headers in RFC 1123 format.
    • Constructor Summary

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

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String formatDate​(java.util.Date date)
      Formats the given date according to the RFC 1123 pattern.
      static java.lang.String formatDate​(java.util.Date date, java.lang.String pattern)
      Formats the given date according to the specified pattern.
      static java.util.Date parseDate​(java.lang.String dateValue)
      Parses a date value.
      static java.util.Date parseDate​(java.lang.String dateValue, java.util.Collection dateFormats)
      Parses the date value using the given date formats.
      static java.util.Date parseDate​(java.lang.String dateValue, java.util.Collection dateFormats, java.util.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 java.lang.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 java.lang.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 java.lang.String PATTERN_ASCTIME
        Date format pattern used to parse HTTP date headers in ANSI C asctime() format.
        See Also:
        Constant Field Values
      • DEFAULT_PATTERNS

        private static final java.util.Collection DEFAULT_PATTERNS
      • DEFAULT_TWO_DIGIT_YEAR_START

        private static final java.util.Date DEFAULT_TWO_DIGIT_YEAR_START
      • GMT

        private static final java.util.TimeZone GMT
    • Constructor Detail

      • DateUtil

        private DateUtil()
        This class should not be instantiated.
    • Method Detail

      • parseDate

        public static java.util.Date parseDate​(java.lang.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 java.util.Date parseDate​(java.lang.String dateValue,
                                               java.util.Collection 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 java.util.Date parseDate​(java.lang.String dateValue,
                                               java.util.Collection dateFormats,
                                               java.util.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 java.lang.String formatDate​(java.util.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 java.lang.String formatDate​(java.util.Date date,
                                                  java.lang.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:
        java.lang.IllegalArgumentException - If the given date pattern is invalid.
        See Also:
        SimpleDateFormat