类 DateTool
- 所有已实现的接口:
Serializable
- 直接已知子类:
ComparisonDateTool
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.
Possible formats include:
- 'short', 'medium', 'long', 'full' (from
DateFormat, optionally suffixed by '_date' or '_time' to get a date-only or time-only format - 'iso' for extended ISO 8601 without time zone (ex: '2016-11-24T10:27:30'), optionally suffixed by '_date' or '_time' to get a date-only or time-only format
- 'iso_tz', like 'iso' with time zone offset (ex: '2016-11-24T10:27:30+01:00'), optionally suffixed by '_time' to get a time-only format ('10:27:30+01:00')
- 'intl', like 'iso' but with a space separator between date and time (ex: '2016-11-24 10:27:30'), optionally suffixed by '_date' or '_time' to get a date-only or time-only format
- 'intl_tz', like 'intl' but with the time zone short id suffixed after another space (ex: '2016-11-24 10:27:30 CET'), optionally suffixed by '_time' to get a time-only format ('10:27:30+01:00')
- a custom format, as specified in
SimpleDateFormat
Example of formatting the "current" date:
$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
$date.iso -> 2003-10-19T21:54:50-07:00
$date.iso_tz_time -> 21:54:50-07:00
$date.intl_tz -> 2003-10-19 21:54:50 CET
Example of formatting an arbitrary date:
$myDate -> Tue Oct 07 03:14:50 PDT 2003
$date.format('medium',$myDate) -> Oct 7, 2003 3:14:50 AM
Example tools.xml config (if you want to use this with VelocityView):
<tools>
<toolbox scope="application">
<tool class="org.apache.velocity.tools.generic.DateTool"
format="yyyy-MM-dd"/>
</toolbox>
</tools>
Should you need to use several formats, you can either use explicit formats by means of the toDate(format, date) method,
or you can declare several date tool instances with different formats.
The methods of this tool are highly interconnected, and overriding key methods provides an easy way to create subclasses that use a non-default format, calendar, locale, or timezone.
- 从以下版本开始:
- VelocityTools 1.0
- 版本:
- $Revision$ $Date$
- 作者:
- Nathan Bubna
- 另请参阅:
-
字段概要
字段修饰符和类型字段说明static final StringThe key used for specifying a default timezone via tool configuration.从类继承的字段 org.apache.velocity.tools.generic.FormatConfig
DEFAULT_FORMAT, FORMAT_KEY从类继承的字段 org.apache.velocity.tools.generic.LocaleConfig
DEFAULT_LOCALE从类继承的字段 org.apache.velocity.tools.generic.SafeConfig
LOCK_CONFIG_KEY, log, LOGGER_NAME_KEY, SAFE_MODE_KEY, USE_CLASS_LOGGER_KEY -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明protected voidconfigure(ValueParser values) Does the actual configuration.Converts the specified object to a date and formats it according to the pattern or style returned byFormatConfig.getFormat().Converts the specified object to a date and returns a formatted string representing that date in the locale returned byLocaleConfig.getLocale().Converts the specified object to a date and returns a formatted string representing that date in the specifiedLocale.Returns the specified date as a string formatted according to the specified date and/or time styles.Returns the specified date as a string formatted according to the specifiedLocaleand date and/or time styles.Returns the specified date as a string formatted according to the specifiedLocaleand date and/or time styles.Returns a formatted string representing the date returned bygetDate().Returns a formatted string representing the date and/or time given bygetDate()in standard, localized patterns.Returns aCalendarinstance created using the timezone and locale returned by getTimeZone() and getLocale().getDate()Returns aDatederived from the result ofgetCalendar()getDateFormat(String dateStyle, String timeStyle, Locale locale, TimeZone timezone) getDateFormat(String format, Locale locale, TimeZone timezone) getDay()getMonth()static final Calendarstatic final Datestatic final longReturns the configuredTimeZone.getYear()protected voidsetTimeZone(TimeZone timezone) Sets time zonetoCalendar(Object obj) Converts an object to an instance ofCalendarusing the format returned byFormatConfig.getFormat(), the locale returned byLocaleConfig.getLocale()and the time zone returned bygetTimeZone().toCalendar(Object obj, Locale locale) Converts an object to an instance ofCalendarusing the provided locale, the format returned byFormatConfig.getFormat()and the time zone returned bygetTimeZone().toCalendar(String format, Object obj) Converts an object to an instance ofCalendarusing the provided format, the locale returned byLocaleConfig.getLocale()and the time zone returned bygetTimeZone().toCalendar(String format, Object obj, Locale locale) Converts an object to an instance ofCalendarusing the provided format and locale, and the time zone returned bygetTimeZone().toCalendar(String format, Object obj, Locale locale, TimeZone timezone) Converts an object to an instance ofCalendarusing the provided format, locale and time zone.Converts an object to an instance ofDateusing the format returned byFormatConfig.getFormat(),theLocalereturned byLocaleConfig.getLocale(), and theTimeZonereturned bygetTimeZone()if the object is not already an instance of Date, Calendar, or Long.Converts an object to an instance ofDateusing the format returned byFormatConfig.getFormat(),the providedLocale, and theTimeZonereturned bygetTimeZone()if the object is not already an instance of Date, Calendar, or Long.Converts an object to an instance ofDateusing the format returned byFormatConfig.getFormat(),the providedLocale, andTimeZoneif the object is not already an instance of Date, Calendar, or Long.Converts an object to an instance ofDateusing the specified format,theLocalereturned byLocaleConfig.getLocale(), and theTimeZonereturned bygetTimeZone()if the object is not already an instance of Date, Calendar, or Long.toLocalizedPattern(String format, Locale locale) Returns a localized date format pattern for the given format.toString()从类继承的方法 org.apache.velocity.tools.generic.FormatConfig
getFormat, setFormat从类继承的方法 org.apache.velocity.tools.generic.LocaleConfig
getLocale, setLocale, toLocale从类继承的方法 org.apache.velocity.tools.generic.SafeConfig
configure, getLog, initLogger, isConfigLocked, isSafeMode, setLockConfig, setSafeMode
-
字段详细资料
-
TIMEZONE_KEY
The key used for specifying a default timezone via tool configuration.- 另请参阅:
-
-
构造器详细资料
-
DateTool
public DateTool()
-
-
方法详细资料
-
configure
Does the actual configuration. This is protected, so subclasses may share the same ValueParser and call configure at any time, while preventing templates from doing so when configure(Map) is locked.- 覆盖:
configure在类中FormatConfig- 参数:
values- configuration values
-
setTimeZone
Sets time zone- 参数:
timezone- time zone
-
getSystemTime
public static final long getSystemTime()- 返回:
- the system's current time as the number of milliseconds elapsed since January 1, 1970, 00:00:00 GMT.
-
getSystemDate
- 返回:
- the system's current time as a
Date
-
getSystemCalendar
- 返回:
- the system's current time as a
Calendar
-
getTimeZone
Returns the configuredTimeZone. Default value is fromTimeZone.getDefault().- 返回:
- the configured
TimeZone
-
getDate
Returns aDatederived from the result ofgetCalendar()- 返回:
- a
Datederived from the result ofgetCalendar()
-
getCalendar
Returns aCalendarinstance 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.
- 返回:
- a
Calendarinstance created using the results ofgetTimeZone()andLocaleConfig.getLocale(). - 另请参阅:
-
getYear
- 返回:
- the year value of the date returned by
getCalendar(). - 从以下版本开始:
- VelocityTools 1.2
-
getYear
- 参数:
date- target date- 返回:
- the year value of the specified date.
- 从以下版本开始:
- VelocityTools 1.2
-
getMonth
- 返回:
- the month value of the date returned by
getCalendar(). - 从以下版本开始:
- VelocityTools 1.2
-
getMonth
- 参数:
date- target date- 返回:
- the month value of the specified date.
- 从以下版本开始:
- VelocityTools 1.2
-
getDay
- 返回:
- 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. - 从以下版本开始:
- VelocityTools 1.2
-
getDay
- 参数:
date- target date- 返回:
- 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. - 从以下版本开始:
- VelocityTools 1.2
-
getValue
- 参数:
field- target field- 返回:
- the specified value of the date returned by
getCalendar()or null if the field is invalid. - 从以下版本开始:
- VelocityTools 1.2
-
getValue
- 参数:
field- the corresponding Integer value or String name of the desired valuedate- the date/calendar from which the field value will be taken- 返回:
- 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.
- 从以下版本开始:
- VelocityTools 1.2
-
getValue
- 参数:
field- the int for the desired field (e.g. Calendar.MONTH)date- the date/calendar from which the field value will be taken- 返回:
- the specified value of the specified date, or null if the field or date is invalid.
- 从以下版本开始:
- VelocityTools 1.2
-
get
Returns a formatted string representing the date returned bygetDate(). In its default implementation, this method allows you to retrieve the current date in standard formats by simply doing things like$date.mediumor$date.full. If you want only the date or time portion you can specify that along with the standard formats. (e.g.$date.medium_dateor$date.short_time) More complex or custom formats can be retrieved by using the full method syntax. (e.g. $date.get('E, MMMM d'))- 参数:
format- the formatting instructions- 返回:
- a formatted representation of the date returned by
getDate() - 从以下版本开始:
- VelocityTools 1.1
- 另请参阅:
-
get
Returns a formatted string representing the date and/or time given bygetDate()in standard, localized patterns.- 参数:
dateStyle- the style pattern for the datetimeStyle- the style pattern for the time- 返回:
- a formatted representation of the date returned by
getDate() - 从以下版本开始:
- VelocityTools 1.1
- 另请参阅:
-
format
Converts the specified object to a date and formats it according to the pattern or style returned byFormatConfig.getFormat().- 参数:
obj- the date object to be formatted- 返回:
- the specified date formatted as a string
- 从以下版本开始:
- VelocityTools 1.1
- 另请参阅:
-
format
Converts the specified object to a date and returns a formatted string representing that date in the locale returned byLocaleConfig.getLocale().- 参数:
format- the formatting instructionsobj- the date object to be formatted- 返回:
- a formatted string for this locale representing the specified
date or
nullif the parameters are invalid - 另请参阅:
-
format
Converts the specified object to a date and returns a formatted string representing that date in the specifiedLocale.- 参数:
format- the formatting instructionsobj- the date object to be formattedlocale- the locale to be used when formatting- 返回:
- the given date as a formatted string
- 另请参阅:
-
format
Returns a formatted string representing the specified date,Locale, andTimeZone.The specified format may be a standard style pattern ('full', 'long', 'medium', 'short', or 'default') or extended style pattern ('iso', 'iso_tz', 'intl', 'intl_tz').
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', 'long_time', 'intl_date')
If the format fits neither of these patterns, then the output will be formatted according to the symbols defined by
SimpleDateFormat.Examples: "E, MMMM d" will result in "Tue, July 24" "EEE, M-d (H:m)" will result in "Tuesday, 7-24 (14:12)" -
format
Returns the specified date as a string formatted according to the specified date and/or time styles.- 参数:
dateStyle- the style pattern for the datetimeStyle- the style pattern for the timeobj- the date to be formatted- 返回:
- a formatted representation of the given date
- 从以下版本开始:
- VelocityTools 1.1
- 另请参阅:
-
format
Returns the specified date as a string formatted according to the specifiedLocaleand date and/or time styles.- 参数:
dateStyle- the style pattern for the datetimeStyle- the style pattern for the timeobj- the date to be formattedlocale- theLocaleto be used for formatting the date- 返回:
- a formatted representation of the given date
- 从以下版本开始:
- VelocityTools 1.1
- 另请参阅:
-
format
public String format(String dateStyle, String timeStyle, Object obj, Locale locale, TimeZone timezone) Returns the specified date as a string formatted according to the specifiedLocaleand date and/or time styles.- 参数:
dateStyle- the style pattern for the datetimeStyle- the style pattern for the timeobj- the date to be formattedlocale- theLocaleto be used for formatting the datetimezone- theTimeZonethe date should be formatted for- 返回:
- a formatted representation of the given date
- 从以下版本开始:
- VelocityTools 1.1
- 另请参阅:
-
getDateFormat
Returns aDateFormatinstance for the specified format,Locale, andTimeZone. 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 customizedSimpleDateFormatwill be returned.- 参数:
format- the custom or standard formatting pattern to be usedlocale- theLocaleto be usedtimezone- theTimeZoneto be used- 返回:
- an instance of
DateFormat - 从以下版本开始:
- VelocityTools 1.1
- 另请参阅:
-
getDateFormat
public DateFormat getDateFormat(String dateStyle, String timeStyle, Locale locale, TimeZone timezone) - 参数:
dateStyle- the date styletimeStyle- the time stylelocale- theLocaleto be usedtimezone- theTimeZoneto be used- 返回:
- an instance of
DateFormat - 从以下版本开始:
- VelocityTools 1.1
- 另请参阅:
-
toDate
Converts an object to an instance ofDateusing the format returned byFormatConfig.getFormat(),theLocalereturned byLocaleConfig.getLocale(), and theTimeZonereturned bygetTimeZone()if the object is not already an instance of Date, Calendar, or Long.- 参数:
obj- the date to convert- 返回:
- the object as a
Dateornullif no conversion is possible
-
toDate
Converts an object to an instance ofDateusing the format returned byFormatConfig.getFormat(),the providedLocale, and theTimeZonereturned bygetTimeZone()if the object is not already an instance of Date, Calendar, or Long. -
toDate
Converts an object to an instance ofDateusing the format returned byFormatConfig.getFormat(),the providedLocale, andTimeZoneif the object is not already an instance of Date, Calendar, or Long. -
toDate
Converts an object to an instance ofDateusing the specified format,theLocalereturned byLocaleConfig.getLocale(), and theTimeZonereturned bygetTimeZone()if the object is not already an instance of Date, Calendar, or Long.- 参数:
format- - the format the date is inobj- - the date to convert- 返回:
- the object as a
Dateornullif no conversion is possible - 另请参阅:
-
toDate
Converts an object to an instance ofDateusing the specified format andLocaleif the object is not already an instance of Date, Calendar, or Long. -
toDate
Converts an object to an instance ofDateusing the specified format,Locale, andTimeZoneif the object is not already an instance of Date, Calendar, or Long. -
toCalendar
Converts an object to an instance ofCalendarusing the format returned byFormatConfig.getFormat(), the locale returned byLocaleConfig.getLocale()and the time zone returned bygetTimeZone().- 参数:
obj- the date to convert- 返回:
- the converted date
- 另请参阅:
-
toCalendar
Converts an object to an instance ofCalendarusing the provided locale, the format returned byFormatConfig.getFormat()and the time zone returned bygetTimeZone().- 参数:
obj- the date to convertlocale- the locale used- 返回:
- the converted date
- 另请参阅:
-
toCalendar
Converts an object to an instance ofCalendarusing the provided format, the locale returned byLocaleConfig.getLocale()and the time zone returned bygetTimeZone().- 参数:
format- the format to useobj- the date to convert- 返回:
- the converted date
- 另请参阅:
-
toCalendar
Converts an object to an instance ofCalendarusing the provided format and locale, and the time zone returned bygetTimeZone().- 参数:
format- the provided formatobj- the date to convertlocale- the locale used- 返回:
- the converted date
- 另请参阅:
-
toCalendar
Converts an object to an instance ofCalendarusing the provided format, locale and time zone.- 参数:
format- the provided formatobj- the date to convertlocale- the locale usedtimezone- the time zone used- 返回:
- the converted date
- 另请参阅:
-
toLocalizedPattern
Returns a localized date format pattern for the given format. SimpleDateFormat uses patterns that are based upon English words (such as Month = M, Day = d, and Year = y). When displaying a format pattern to readers of other languages, it is appropriate to display these patterns using their localized expectations. For instance, the date pattern yyyy-MM-dd should, for French speakers appear as "aaaa-MM-jj".SimpleDateFormat.toLocalizedPattern()provides this functionality, and this method merely calls that on an appropriately-constructed SimpleDateFormat object.- 参数:
format- the custom or standard pattern to convertlocale- theLocaleto format for pattern for- 返回:
- a format string appropriate for the specified Locale
- 从以下版本开始:
- VelocityTools 2.0
-
toString
- 覆盖:
toString在类中Object- 返回:
- the result of
getDate()formatted according to the result ofFormatConfig.getFormat(). - 另请参阅:
-