org.jboss.dna.common.util
Class DateUtil

java.lang.Object
  extended by org.jboss.dna.common.util.DateUtil

@ThreadSafe
public class DateUtil
extends java.lang.Object

Utilities for working with dates.

Many of the methods that convert dates to and from strings utilize the ISO 8601:2004 standard string format yyyy-MM-ddTHH:mm:ss.SSSZ, where

 Symbol   Meaning                 Presentation        Example
 ------   -------                 ------------        -------
 y        year                    (Number)            1996
 M        month in year           (Number)            07
 d        day in month            (Number)            10
 h        hour in am/pm (1˜12)    (Number)            12
 H        hour in day (0˜23)      (Number)            0
 m        minute in hour          (Number)            30
 s        second in minute        (Number)            55
 S        millisecond             (Number)            978
 Z        time zone               (Number)            -0600
 

This class is written to be thread safe. As SimpleDateFormat is not threadsafe, no shared instances are used.

Author:
Randall Hauch

Field Summary
static java.lang.String ISO_8601_2004_FORMAT
           
 
Method Summary
static java.util.Calendar getCalendarFromStandardString(java.lang.String dateString)
          Parse the date contained in the supplied string.
static java.lang.String getDateAsStandardString(java.util.Calendar date)
          Obtain an ISO 8601:2004 string representation of the date given the supplied milliseconds since the epoch.
static java.lang.String getDateAsStandardString(java.util.Date date)
          Obtain an ISO 8601:2004 string representation of the supplied date.
static java.lang.String getDateAsStandardString(long millisecondsSinceEpoch)
          Obtain an ISO 8601:2004 string representation of the date given the supplied milliseconds since the epoch.
static java.lang.String getDateAsStringForCurrentLocale(java.util.Date date)
           
static java.lang.String getDateAsStringForLocale(java.util.Date date, java.util.Locale locale)
           
static java.util.Date getDateFromStandardString(java.lang.String dateString)
          Parse the date contained in the supplied string.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ISO_8601_2004_FORMAT

public static final java.lang.String ISO_8601_2004_FORMAT
See Also:
Constant Field Values
Method Detail

getCalendarFromStandardString

public static java.util.Calendar getCalendarFromStandardString(java.lang.String dateString)
                                                        throws java.text.ParseException
Parse the date contained in the supplied string. The date must follow one of the standard ISO 8601 formats, of the form datepartTtimepart, where datepart is one of the following forms:

YYYYMMDD
The 4-digit year, the 2-digit month (00-12), and the 2-digit day of the month (00-31). The month and day are optional, but the month is required if the day is given.
YYYY-MM-DD
The 4-digit year, the 2-digit month (00-12), and the 2-digit day of the month (00-31). The month and day are optional, but the month is required if the day is given.
YYYY-Www-D
The 4-digit year followed by 'W', the 2-digit week number (00-53), and the day of the week (1-7). The day of week number is optional.
YYYYWwwD
The 4-digit year followed by 'W', the 2-digit week number (00-53), and the day of the week (1-7). The day of week number is optional.
YYYY-DDD
The 4-digit year followed by the 3-digit day of the year (000-365)
YYYYDDD
The 4-digit year followed by the 3-digit day of the year (000-365)

The timepart consists of one of the following forms that contain the 2-digit hour (00-24), the 2-digit minutes (00-59), the 2-digit seconds (00-59), and the 1-to-3 digit milliseconds. The minutes, seconds and milliseconds are optional, but any component is required if it is followed by another component (e.g., minutes are required if the seconds are given).

hh:mm:ss.SSS
hhmmssSSS

followed by one of the following time zone definitions:

Z
The uppercase or lowercase 'Z' to denote UTC time
±hh:mm
The 2-digit hour and the 2-digit minute offset from UTC
±hhmm
The 2-digit hour and the 2-digit minute offset from UTC
±hh
The 2-digit hour offset from UTC
hh:mm
The 2-digit hour and the 2-digit minute offset from UTC
hhmm
The 2-digit hour and the 2-digit minute offset from UTC
hh
The 2-digit hour offset from UTC

Parameters:
dateString - the string containing the date to be parsed
Returns:
the parsed date as a Calendar object.
Throws:
java.text.ParseException - if there is a problem parsing the string

getDateFromStandardString

public static java.util.Date getDateFromStandardString(java.lang.String dateString)
                                                throws java.text.ParseException
Parse the date contained in the supplied string. This method simply calls Calendar.getTime() on the result of getCalendarFromStandardString(String).

Parameters:
dateString - the string containing the date to be parsed
Returns:
the parsed date as a Calendar object.
Throws:
java.text.ParseException - if there is a problem parsing the string
See Also:
getCalendarFromStandardString(String)

getDateAsStandardString

public static java.lang.String getDateAsStandardString(long millisecondsSinceEpoch)
Obtain an ISO 8601:2004 string representation of the date given the supplied milliseconds since the epoch.

Parameters:
millisecondsSinceEpoch - the milliseconds for the date
Returns:
the string in the standard format
See Also:
getDateAsStandardString(Date), getDateFromStandardString(String), getCalendarFromStandardString(String)

getDateAsStandardString

public static java.lang.String getDateAsStandardString(java.util.Calendar date)
Obtain an ISO 8601:2004 string representation of the date given the supplied milliseconds since the epoch.

Parameters:
date - the date in calendar form
Returns:
the string in the standard format
See Also:
getDateAsStandardString(Date), getDateFromStandardString(String), getCalendarFromStandardString(String)

getDateAsStandardString

public static java.lang.String getDateAsStandardString(java.util.Date date)
Obtain an ISO 8601:2004 string representation of the supplied date.

Parameters:
date - the date
Returns:
the string in the standard format
See Also:
getDateAsStandardString(long), getDateFromStandardString(String), getCalendarFromStandardString(String)

getDateAsStringForCurrentLocale

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

getDateAsStringForLocale

public static java.lang.String getDateAsStringForLocale(java.util.Date date,
                                                        java.util.Locale locale)


Copyright © 2008. All Rights Reserved.