Package io.milton.http
Class DateUtils
- java.lang.Object
-
- io.milton.http.DateUtils
-
public 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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDateUtils.DateParseException
-
Field Summary
Fields Modifier and Type Field Description static TimeZoneGMTstatic StringPATTERN_ASCTIMEDate format pattern used to parse HTTP date headers in ANSI Casctime()format.static StringPATTERN_ASCTIME2Another Date format pattern used to parse HTTP date headers in ANSI Casctime()format.static StringPATTERN_RESPONSE_HEADERUsed for response headers, and for modified date in propfindstatic StringPATTERN_RFC1036Date format pattern used to parse HTTP date headers in RFC 1036 format.static StringPATTERN_RFC1123Date format pattern used to parse HTTP date headers in RFC 1123 format.static StringPATTERN_RFC1123_HYPHENSLike PATTERN_RFC1123 but with hyphens between the date componentsstatic StringPATTERN_RFC1123_NOSECSDate format pattern used to parse HTTP date headers in RFC 1123 format.static StringPATTERN_WEBDAV
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static StringformatDate(Calendar cal)static StringformatDate(Date date)static StringformatDate(Date date, String pattern)Formats the given date according to the specified pattern.static StringformatForCookieExpiry(Date date)static StringformatForHeader(Date date)static StringformatForWebDavModifiedDate(Date date)Use the long date form required for MS windows explorerstatic Stringpad2(int i)static DateparseDate(String dateValue)Parses a date value.static DateparseDate(String dateValue, Collection<String> dateFormats)Parses the date value using the given date formats.static DateparseDate(String dateValue, Collection<String> dateFormats, Date startDate)Parses the date value using the given date formats.static DateparseIcalDateTime(String s)20140104T050000Z 20131222T000000Zstatic DateparseIcalDateTime_old(String s)static DateparseWebDavDate(String s)Parse date in format: 2010-09-03T09:29:43Z
-
-
-
Field Detail
-
PATTERN_WEBDAV
public static final String PATTERN_WEBDAV
- See Also:
- Constant Field Values
-
PATTERN_RESPONSE_HEADER
public static final String PATTERN_RESPONSE_HEADER
Used for response headers, and for modified date in propfind- See Also:
- Constant Field Values
-
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_RFC1123_HYPHENS
public static final String PATTERN_RFC1123_HYPHENS
Like PATTERN_RFC1123 but with hyphens between the date components- See Also:
- Constant Field Values
-
PATTERN_RFC1123_NOSECS
public static final 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 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 Casctime()format.- See Also:
- Constant Field Values
-
PATTERN_ASCTIME2
public static final String PATTERN_ASCTIME2
Another Date format pattern used to parse HTTP date headers in ANSI Casctime()format.- See Also:
- Constant Field Values
-
GMT
public static final TimeZone GMT
-
-
Method Detail
-
parseWebDavDate
public static Date parseWebDavDate(String s) throws DateUtils.DateParseException
Parse date in format: 2010-09-03T09:29:43Z- Parameters:
s-- Returns:
- Throws:
DateUtils.DateParseException
-
parseIcalDateTime
public static Date parseIcalDateTime(String s) throws DateUtils.DateParseException
20140104T050000Z 20131222T000000Z- Parameters:
s-- Returns:
- Throws:
DateUtils.DateParseException
-
parseIcalDateTime_old
public static Date parseIcalDateTime_old(String s) throws DateUtils.DateParseException
- Throws:
DateUtils.DateParseException
-
parseDate
public static Date parseDate(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 Date parseDate(String dateValue, Collection<String> dateFormats) throws DateUtils.DateParseException
Parses the date value using the given date formats.- Parameters:
dateValue- the date value to parsedateFormats- the date formats to use- Returns:
- the parsed date
- Throws:
DateUtils.DateParseException- if none of the dataFormats could parse the dateValue
-
parseDate
public static Date parseDate(String dateValue, Collection<String> dateFormats, Date startDate) throws DateUtils.DateParseException
Parses the date value using the given date formats.- Parameters:
dateValue- the date value to parsedateFormats- the date formats to usestartDate- During parsing, two digit years will be placed in the rangestartDatetostartDate + 100 years. This value may benull. Whennullis given as a parameter, year2000will be used.- Returns:
- the parsed date
- Throws:
DateUtils.DateParseException- if none of the dataFormats could parse the dateValue
-
formatDate
public static String formatDate(Calendar cal)
- Parameters:
cal-- Returns:
- See Also:
PATTERN_WEBDAV
-
pad2
public static String pad2(int i)
-
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 thesimple date formatclass.- 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
-
formatForWebDavModifiedDate
public static String formatForWebDavModifiedDate(Date date)
Use the long date form required for MS windows explorer- Parameters:
date-- Returns:
-
-