public abstract class DateTimeConverter extends AbstractConverter
Converter
implementaion
that handles conversion to and from date/time objects.
This implementation handles conversion for the following date/time types.
java.util.Date
java.util.Calendar
java.sql.Date
java.sql.Time
java.sql.Timestamp
setUseLocaleFormat(true)
setLocale(Locale)
setPattern(String)
or
setPatterns(String[])
setPattern(String)
or
setPatterns(String[]) and...
setLocale(Locale)
toDate(String)
method is used to convert
from String to Date and the Dates's
toString()
method used to convert from
Date to String.
The Time Zone to use with the date format can be specified
using the setTimeZone()
method.
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
displayPatterns |
private java.util.Locale |
locale |
private java.lang.String[] |
patterns |
private java.util.TimeZone |
timeZone |
private boolean |
useLocaleFormat |
Constructor and Description |
---|
DateTimeConverter()
Construct a Date/Time Converter that throws a
ConversionException if an error occurs. |
DateTimeConverter(java.lang.Object defaultValue)
Construct a Date/Time Converter that returns a default
value if an error occurs.
|
Modifier and Type | Method and Description |
---|---|
protected java.lang.String |
convertToString(java.lang.Object value)
Convert an input Date/Calendar object into a String.
|
protected <T> T |
convertToType(java.lang.Class<T> targetType,
java.lang.Object value)
Convert the input object into a Date object of the
specified type.
|
protected java.text.DateFormat |
getFormat(java.util.Locale locale,
java.util.TimeZone timeZone)
Return a
DateFormat |
private java.text.DateFormat |
getFormat(java.lang.String pattern)
Create a date format for the specified pattern.
|
java.util.Locale |
getLocale()
Return the Locale for the Converter
(or
null if none specified). |
java.lang.String[] |
getPatterns()
Return the date format patterns used to convert
dates to/from a
java.lang.String
(or null if none specified). |
java.util.TimeZone |
getTimeZone()
Return the Time Zone to use when converting dates
(or
null if none specified. |
private void |
logFormat(java.lang.String action,
java.text.DateFormat format)
Log the
DateFormat |
private java.util.Calendar |
parse(java.lang.Class<?> sourceType,
java.lang.Class<?> targetType,
java.lang.String value)
Parse a String date value using the set of patterns.
|
private java.util.Calendar |
parse(java.lang.Class<?> sourceType,
java.lang.Class<?> targetType,
java.lang.String value,
java.text.DateFormat format)
Parse a String into a
Calendar object
using the specified DateFormat . |
void |
setLocale(java.util.Locale locale)
Set the Locale for the Converter.
|
void |
setPattern(java.lang.String pattern)
Set a date format pattern to use to convert
dates to/from a
java.lang.String . |
void |
setPatterns(java.lang.String[] patterns)
Set the date format patterns to use to convert
dates to/from a
java.lang.String . |
void |
setTimeZone(java.util.TimeZone timeZone)
Set the Time Zone to use when converting dates.
|
void |
setUseLocaleFormat(boolean useLocaleFormat)
Indicate whether conversion should use a format/pattern or not.
|
private <T> T |
toDate(java.lang.Class<T> type,
long value)
Convert a long value to the specified Date type for this
Converter.
|
private <T> T |
toDate(java.lang.Class<T> type,
java.lang.String value)
Default String to Date conversion.
|
java.lang.String |
toString()
Provide a String representation of this date/time converter.
|
conversionException, convert, convertArray, getDefault, getDefaultType, handleError, handleMissing, isUseDefault, log, setDefaultValue, toString
private java.lang.String[] patterns
private java.lang.String displayPatterns
private java.util.Locale locale
private java.util.TimeZone timeZone
private boolean useLocaleFormat
public DateTimeConverter()
ConversionException
if an error occurs.public DateTimeConverter(java.lang.Object defaultValue)
defaultValue
- The default value to be returned
if the value to be converted is missing or an error
occurs converting the value.public void setUseLocaleFormat(boolean useLocaleFormat)
useLocaleFormat
- true
if the format
for the locale should be used, otherwise false
public java.util.TimeZone getTimeZone()
null
if none specified.public void setTimeZone(java.util.TimeZone timeZone)
timeZone
- The Time Zone.public java.util.Locale getLocale()
null
if none specified).public void setLocale(java.util.Locale locale)
locale
- The Locale.public void setPattern(java.lang.String pattern)
java.lang.String
.pattern
- The format pattern.SimpleDateFormat
public java.lang.String[] getPatterns()
java.lang.String
(or null
if none specified).SimpleDateFormat
public void setPatterns(java.lang.String[] patterns)
java.lang.String
.patterns
- Array of format patterns.SimpleDateFormat
protected java.lang.String convertToString(java.lang.Object value) throws java.lang.Throwable
N.B.If the converter has been configured to with
one or more patterns (using setPatterns()
), then
the first pattern will be used to format the date into a String.
Otherwise the default DateFormat
for the default locale
(and style if configured) will be used.
convertToString
in class AbstractConverter
value
- The input value to be convertedjava.lang.Throwable
- if an error occurs converting to a Stringprotected <T> T convertToType(java.lang.Class<T> targetType, java.lang.Object value) throws java.lang.Exception
This method handles conversions between the following types:
java.util.Date
java.util.Calendar
java.sql.Date
java.sql.Time
java.sql.Timestamp
String
to
any of the above types.
For String
conversion, if the converter has been configured
with one or more patterns (using setPatterns()
), then
the conversion is attempted with each of the specified patterns.
Otherwise the default DateFormat
for the default locale
(and style if configured) will be used.
convertToType
in class AbstractConverter
T
- The desired target type of the conversion.targetType
- Data type to which this value should be converted.value
- The input value to be converted.java.lang.Exception
- if conversion cannot be performed successfullyprivate <T> T toDate(java.lang.Class<T> type, long value)
This method handles conversion to the following types:
java.util.Date
java.util.Calendar
java.sql.Date
java.sql.Time
java.sql.Timestamp
T
- The target typetype
- The Date type to convert tovalue
- The long value to convert.private <T> T toDate(java.lang.Class<T> type, java.lang.String value)
This method handles conversion from a String to the following types:
java.sql.Date
java.sql.Time
java.sql.Timestamp
N.B. No default String conversion
mechanism is provided for java.util.Date
and java.util.Calendar
type.
T
- The target typetype
- The date type to convert tovalue
- The String value to convert.protected java.text.DateFormat getFormat(java.util.Locale locale, java.util.TimeZone timeZone)
DateFormat for the Locale.
locale
- The Locale to create the Format with (may be null)timeZone
- The Time Zone create the Format with (may be null)private java.text.DateFormat getFormat(java.lang.String pattern)
pattern
- The date patternprivate java.util.Calendar parse(java.lang.Class<?> sourceType, java.lang.Class<?> targetType, java.lang.String value) throws java.lang.Exception
sourceType
- The type of the value being convertedtargetType
- The type to convert the value to.value
- The String date value.java.lang.Exception
- if an error occurs parsing the date.private java.util.Calendar parse(java.lang.Class<?> sourceType, java.lang.Class<?> targetType, java.lang.String value, java.text.DateFormat format)
Calendar
object
using the specified DateFormat
.sourceType
- The type of the value being convertedtargetType
- The type to convert the value tovalue
- The String date value.format
- The DateFormat to parse the String value.ConversionException
- if the String cannot be converted.public java.lang.String toString()
toString
in class AbstractConverter
private void logFormat(java.lang.String action, java.text.DateFormat format)
DateFormat creation.
action
- The action the format is being used forformat
- The Date formatCopyright (c) 2000-2008 - Apache Software Foundation