Save This Page
Home » velocity-1.5 » org.apache.velocity.tools » generic » [javadoc | source]
org.apache.velocity.tools.generic
public class: DateTool [javadoc | source]
java.lang.Object
   org.apache.velocity.tools.generic.DateTool
Tool for working with Date and Calendar in Velocity templates. It is useful for accessing and formatting the "current" date as well as for formatting arbitrary Date and Calendar objects. Also the tool can be used to retrieve DateFormat instances or make conversions to and from various date types.

Example uses:
$date -> Oct 19, 2003 9:54:50 PM
$date.long -> October 19, 2003 9:54:50 PM PDT
$date.medium_time -> 9:54:50 PM
$date.full_date -> Sunday, October 19, 2003
$date.get('default','short') -> Oct 19, 2003 9:54 PM
$date.get('yyyy-M-d H:m:s') -> 2003-10-19 21:54:50

$myDate -> Tue Oct 07 03:14:50 PDT 2003
$date.format('medium',$myDate) -> Oct 7, 2003 3:14:50 AM

Example toolbox.xml config (if you want to use this with VelocityView):
<tool>
<key>date</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.DateTool</class>
</tool>

This tool is entirely threadsafe, and has no instance members. It may be used in any scope (request, session, or application). As such, the methods are highly interconnected, and overriding key methods provides an easy way to create subclasses that use a non-default format, calendar, locale, or timezone.

Field Summary
public static final  String DEFAULT_FORMAT    The default format to be used when none is specified.
    since: VelocityTools - 1.1
 
Constructor:
 public DateTool() 
Method from org.apache.velocity.tools.generic.DateTool Summary:
format,   format,   format,   format,   format,   format,   format,   get,   get,   getCalendar,   getDate,   getDateFormat,   getDateFormat,   getDateFormat,   getDay,   getDay,   getFormat,   getLocale,   getMonth,   getMonth,   getStyleAsInt,   getSystemCalendar,   getSystemDate,   getTimeZone,   getValue,   getValue,   getValue,   getYear,   getYear,   toCalendar,   toCalendar,   toDate,   toDate,   toDate,   toDate,   toString
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.velocity.tools.generic.DateTool Detail:
 public String format(Object obj) 
    Converts the specified object to a date and formats it according to the pattern or style returned by #getFormat() .
 public String format(String format,
    Object obj) 
    Converts the specified object to a date and returns a formatted string representing that date in the locale returned by #getLocale() .
 public String format(String format,
    Object obj,
    Locale locale) 
    Converts the specified object to a date and returns a formatted string representing that date in the specified Locale .
 public String format(String dateStyle,
    String timeStyle,
    Object obj) 
    Returns the specified date as a string formatted according to the specified date and/or time styles.
 public String format(String format,
    Object obj,
    Locale locale,
    TimeZone timezone) 
    Returns a formatted string representing the specified date, Locale , and TimeZone .

    The specified format may be a standard style pattern ('full', 'long', 'medium', 'short', or 'default').

    You may also specify that you want only the date or time portion be appending '_date' or '_time' respectively to the standard style pattern. (e.g. 'full_date' or 'long_time')

    If the format fits neither of these patterns, then the output will be formatted according to the symbols defined by SimpleDateFormat :

    Symbol Meaning Presentation Example
    ------ ------- ------------ -------
    G era designator (Text) AD
    y year (Number) 1996
    M month in year (Text & Number) July & 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
    E day in week (Text) Tuesday
    D day in year (Number) 189
    F day of week in month (Number) 2 (2nd Wed in July)
    w week in year (Number) 27
    W week in month (Number) 2
    a am/pm marker (Text) PM
    k hour in day (1~24) (Number) 24
    K hour in am/pm (0~11) (Number) 0
    z time zone (Text) Pacific Standard Time
    ' escape for text (Delimiter)
    '' single quote (Literal) '
    
    Examples: "E, MMMM d" will result in "Tue, July 24"
    "EEE, M-d (H:m)" will result in "Tuesday, 7-24 (14:12)"
    

 public String format(String dateStyle,
    String timeStyle,
    Object obj,
    Locale locale) 
    Returns the specified date as a string formatted according to the specified Locale and date and/or time styles.
 public String format(String dateStyle,
    String timeStyle,
    Object obj,
    Locale locale,
    TimeZone timezone) 
    Returns the specified date as a string formatted according to the specified Locale and date and/or time styles.
 public String get(String format) 
    Returns a formatted string representing the date returned by #getDate() . In its default implementation, this method allows you to retrieve the current date in standard formats by simply doing things like $date.medium or $date.full. If you want only the date or time portion you can specify that along with the standard formats. (e.g. $date.medium_date or $date.short_time) More complex or custom formats can be retrieved by using the full method syntax. (e.g. $date.get('E, MMMM d'))
 public String get(String dateStyle,
    String timeStyle) 
    Returns a formatted string representing the date and/or time given by #getDate() in standard, localized patterns.
 public Calendar getCalendar() 
    Returns a Calendar instance created using the timezone and locale returned by getTimeZone() and getLocale(). This allows subclasses to easily override the default locale and timezone used by this tool.

    Sub-classes may override this method to return a Calendar instance not based on the system date. Doing so will also cause the getDate(), get(String), get(String,String), and toString() methods to return dates equivalent to the Calendar returned by this method, because those methods return values derived from the result of this method.

 public Date getDate() 
 public DateFormat getDateFormat(String format,
    Locale locale,
    TimeZone timezone) 
    Returns a DateFormat instance for the specified format, Locale , and TimeZone . If the format specified is a standard style pattern, then a date-time instance will be returned with both the date and time styles set to the specified style. If it is a custom format, then a customized SimpleDateFormat will be returned.
 public DateFormat getDateFormat(String dateStyle,
    String timeStyle,
    Locale locale,
    TimeZone timezone) 
 protected DateFormat getDateFormat(int dateStyle,
    int timeStyle,
    Locale locale,
    TimeZone timezone) 
 public Integer getDay() 
    Returns the day (of the month) value of the date returned by #getCalendar() .

    NOTE: Unlike java.util.Date, this returns the day of the month. It is equivalent to Date.getDate() and Calendar.get(Calendar.DAY_OF_MONTH). We could not call this method getDate() because that already exists in this class with a different function.
 public Integer getDay(Object date) 
    Returns the day (of the month) value for the specified date.

    NOTE: Unlike java.util.Date, this returns the day of the month. It is equivalent to Date.getDate() and Calendar.get(Calendar.DAY_OF_MONTH). We could not call this method getDate() because that already exists in this class with a different function.
 public String getFormat() 
    Return the pattern or style to be used for formatting dates when none is specified. This implementation gives a 'default' date-time format. Subclasses may override this to provide a different default format.

    NOTE: At some point in the future it may be feasible to configure this value via the toolbox definition, but at present, it is not possible to specify custom tool configurations there. For now you should just override this in a subclass to have a different default.

 public Locale getLocale() 
    This implementation returns the default locale. Subclasses may override this to return alternate locales. Please note that doing so will affect all formatting methods where no locale is specified in the parameters.
 public Integer getMonth() 
 public Integer getMonth(Object date) 
    Returns the month value of the specified date.
 protected int getStyleAsInt(String style) 
    Checks a string to see if it matches one of the standard DateFormat style patterns: FULL, LONG, MEDIUM, SHORT, or DEFAULT. If it does, it will return the integer constant for that pattern. If not, it will return -1.
 public static final Calendar getSystemCalendar() 
 public static final Date getSystemDate() 
 public TimeZone getTimeZone() 
    This implementation returns the default TimeZone. Subclasses may override this to return alternate timezones. Please note that doing so will affect all formatting methods where no timezone is specified in the parameters.
 public Integer getValue(Object field) 
    Return the specified value of the date returned by #getCalendar() or null if the field is invalid.
 public Integer getValue(Object field,
    Object date) 
    Returns the specified value of the specified date, or null if the field or date is invalid. The field may be an Integer or it may be the name of the field as a String.
 public Integer getValue(int field,
    Object date) 
    Returns the specified value of the specified date, or null if the field or date is invalid.
 public Integer getYear() 
 public Integer getYear(Object date) 
    Returns the year value of the specified date.
 public Calendar toCalendar(Object obj) 
    Converts an object to an instance of Calendar using the locale returned by #getLocale() if necessary.
 public Calendar toCalendar(Object obj,
    Locale locale) 
    Converts an object to an instance of Calendar using the locale returned by #getLocale() if necessary.
 public Date toDate(Object obj) 
 public Date toDate(String format,
    Object obj) 
 public Date toDate(String format,
    Object obj,
    Locale locale) 
    Converts an object to an instance of Date using the specified format and Locale if the object is not already an instance of Date, Calendar, or Long.
 public Date toDate(String format,
    Object obj,
    Locale locale,
    TimeZone timezone) 
    Converts an object to an instance of Date using the specified format, Locale , and TimeZone if the object is not already an instance of Date, Calendar, or Long.
 public String toString()