com.bradmcevoy.http
Class DateUtils

java.lang.Object
  extended by com.bradmcevoy.http.DateUtils

public class DateUtils
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.

Author:
Christopher Brown, Michael Becke

Nested Class Summary
static class DateUtils.DateParseException
           
 
Field Summary
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_ASCTIME2
          Another Date format pattern used to parse HTTP date headers in ANSI C asctime() format.
static java.lang.String PATTERN_RESPONSE_HEADER
          Used for response headers, and for modified date in propfind
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.
static java.lang.String PATTERN_RFC1123_NOSECS
          Date format pattern used to parse HTTP date headers in RFC 1123 format.
static java.lang.String PATTERN_WEBDAV
           
 
Method Summary
static java.lang.String formatDate(java.util.Calendar cal)
           
static java.lang.String formatDate(java.util.Date date)
           
static java.lang.String formatDate(java.util.Date date, java.lang.String pattern)
          Formats the given date according to the specified pattern.
static java.lang.String formatForHeader(java.util.Date date)
           
static java.lang.String formatForWebDavModifiedDate(java.util.Date date)
          Use the long date form required for MS windows explorer
static java.lang.String pad2(int i)
           
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<java.lang.String> dateFormats)
          Parses the date value using the given date formats.
static java.util.Date parseDate(java.lang.String dateValue, java.util.Collection<java.lang.String> dateFormats, java.util.Date startDate)
          Parses the date value using the given date formats.
static java.util.Date parseWebDavDate(java.lang.String s)
          Parse date in format: 2010-09-03T09:29:43Z
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PATTERN_WEBDAV

public static final java.lang.String PATTERN_WEBDAV
See Also:
Constant Field Values

PATTERN_RESPONSE_HEADER

public static final java.lang.String PATTERN_RESPONSE_HEADER
Used for response headers, and for modified date in propfind

See Also:
Constant Field Values

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_RFC1123_NOSECS

public static final java.lang.String PATTERN_RFC1123_NOSECS
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

PATTERN_ASCTIME2

public static final java.lang.String PATTERN_ASCTIME2
Another Date format pattern used to parse HTTP date headers in ANSI C asctime() format.

See Also:
Constant Field Values

GMT

public static final java.util.TimeZone GMT
Method Detail

parseWebDavDate

public static java.util.Date parseWebDavDate(java.lang.String s)
                                      throws DateUtils.DateParseException
Parse date in format: 2010-09-03T09:29:43Z

Parameters:
s -
Returns:
Throws:
DateUtils.DateParseException

parseDate

public static java.util.Date parseDate(java.lang.String dateValue)
                                throws DateUtils.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:
DateUtils.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<java.lang.String> dateFormats)
                                throws DateUtils.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:
DateUtils.DateParseException - if none of the dataFormats could parse the dateValue

parseDate

public static java.util.Date parseDate(java.lang.String dateValue,
                                       java.util.Collection<java.lang.String> dateFormats,
                                       java.util.Date startDate)
                                throws DateUtils.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:
DateUtils.DateParseException - if none of the dataFormats could parse the dateValue

formatDate

public static java.lang.String formatDate(java.util.Date date)

formatDate

public static java.lang.String formatDate(java.util.Calendar cal)
See Also:
PATTERN_WEBDAV

formatForHeader

public static java.lang.String formatForHeader(java.util.Date date)

pad2

public static java.lang.String pad2(int i)

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

formatForWebDavModifiedDate

public static java.lang.String formatForWebDavModifiedDate(java.util.Date date)
Use the long date form required for MS windows explorer

Parameters:
date -
Returns:


Copyright © 2011. All Rights Reserved.