Class StdDateFormat
- All Implemented Interfaces:
Serializable,Cloneable
DateFormat implementation used by standard Date
serializers and deserializers to implement default behavior: does NOT
fully implement all aspects expected by DateFormat and as a consequence
SHOULD NOT to be used by code outside core Jackson databind functionality.
In particular, ParsePosition argument of parse(String, ParsePosition)
and format(Date, StringBuffer, FieldPosition) methods is fully ignored;
Jackson itself never calls these methods.
For serialization defaults to using
an ISO-8601 compliant format (format String "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
and for deserialization, both ISO-8601 and RFC-1123.
Note that `Z` in format String refers to ISO-8601 time offset notation which produces
values like "-08:00" -- that is, full minute/hour combo without colon, and not using `Z`
as alias for "+00:00".
Inclusion of colon as separator, as default setting, started in Jackson 2.11:
prior versions omitted it.
Note that it is possible to enable/disable use of colon in time offset by using method
withColonInTimeZone(boolean) for creating new differently configured format instance,
and configuring ObjectMapper with it.
TODO: in Jackson 2.14 or later, should change behavior to fail if ParsePosition
is specified by caller (at least with non-0 offset).
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.text.DateFormat
DateFormat.Field -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringDefines a commonly used date format that conforms to ISO-8601 date formatting standard, when it includes basic undecorated timezone definition.static final StdDateFormatA singleton instance can be used for cloning purposes, as a blueprint of sorts.Fields inherited from class java.text.DateFormat
AM_PM_FIELD, DATE_FIELD, DAY_OF_WEEK_FIELD, DAY_OF_WEEK_IN_MONTH_FIELD, DAY_OF_YEAR_FIELD, DEFAULT, ERA_FIELD, FULL, HOUR_OF_DAY0_FIELD, HOUR_OF_DAY1_FIELD, HOUR0_FIELD, HOUR1_FIELD, LONG, MEDIUM, MILLISECOND_FIELD, MINUTE_FIELD, MONTH_FIELD, SECOND_FIELD, SHORT, TIMEZONE_FIELD, WEEK_OF_MONTH_FIELD, WEEK_OF_YEAR_FIELD, YEAR_FIELD -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclone()booleanformat(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) static TimeZonestatic DateFormatgetISO8601Format(TimeZone tz, Locale loc) Deprecated.Since 2.9static DateFormatgetRFC1123Format(TimeZone tz, Locale loc) Deprecated.Since 2.9inthashCode()booleanAccessor for checking whether this instance would include colon within timezone serialization or not: if {code true}, timezone offset is serialized like-06:00; if {code false} as-0600.booleanparse(String dateStr, ParsePosition pos) voidsetLenient(boolean enabled) Need to override since we need to keep track of leniency locally, and not via underlyingCalendarinstance like base class does.voidsetTimeZone(TimeZone tz) toString()withColonInTimeZone(boolean b) "Mutant factory" method that will return an instance that has specified handling of colon when serializing timezone (timezone either written like+0500or+05:00): eitherthisinstance (if setting would not change), or newly constructed instance with desired setting for colon inclusion."Mutant factory" method that will return an instance that has specified leniency setting: eitherthisinstance (if setting would not change), or newly constructed instance.withLocale(Locale loc) "Mutant factory" method that will return an instance that uses specifiedLocale: eitherthisinstance (if setting would not change), or newly constructed instance with differentLocaleto use.withTimeZone(TimeZone tz) Method used for creating a new instance with specified timezone; if no timezone specified, defaults to the default timezone (UTC).Methods inherited from class java.text.DateFormat
format, format, getAvailableLocales, getCalendar, getDateInstance, getDateInstance, getDateInstance, getDateTimeInstance, getDateTimeInstance, getDateTimeInstance, getInstance, getNumberFormat, getTimeInstance, getTimeInstance, getTimeInstance, parseObject, setCalendar, setNumberFormatMethods inherited from class java.text.Format
format, formatToCharacterIterator, parseObject
-
Field Details
-
DATE_FORMAT_STR_ISO8601
Defines a commonly used date format that conforms to ISO-8601 date formatting standard, when it includes basic undecorated timezone definition.- See Also:
-
instance
A singleton instance can be used for cloning purposes, as a blueprint of sorts.
-
-
Constructor Details
-
StdDateFormat
public StdDateFormat() -
StdDateFormat
Deprecated.
-
-
Method Details
-
getDefaultTimeZone
-
withTimeZone
Method used for creating a new instance with specified timezone; if no timezone specified, defaults to the default timezone (UTC). -
withLocale
"Mutant factory" method that will return an instance that uses specifiedLocale: eitherthisinstance (if setting would not change), or newly constructed instance with differentLocaleto use. -
withLenient
"Mutant factory" method that will return an instance that has specified leniency setting: eitherthisinstance (if setting would not change), or newly constructed instance.- Since:
- 2.9
-
withColonInTimeZone
"Mutant factory" method that will return an instance that has specified handling of colon when serializing timezone (timezone either written like+0500or+05:00): eitherthisinstance (if setting would not change), or newly constructed instance with desired setting for colon inclusion.NOTE: does NOT affect deserialization as colon is optional accepted but not required -- put another way, either serialization is accepted by this class.
- Since:
- 2.9.1
-
clone
- Overrides:
clonein classDateFormat
-
getISO8601Format
Deprecated.Since 2.9Method for getting a non-shared DateFormat instance that uses specified timezone and can handle simple ISO-8601 compliant date format.- Since:
- 2.4
-
getRFC1123Format
Deprecated.Since 2.9Method for getting a non-shared DateFormat instance that uses specific timezone and can handle RFC-1123 compliant date format.- Since:
- 2.4
-
getTimeZone
- Overrides:
getTimeZonein classDateFormat
-
setTimeZone
- Overrides:
setTimeZonein classDateFormat
-
setLenient
public void setLenient(boolean enabled) Need to override since we need to keep track of leniency locally, and not via underlyingCalendarinstance like base class does.- Overrides:
setLenientin classDateFormat
-
isLenient
public boolean isLenient()- Overrides:
isLenientin classDateFormat
-
isColonIncludedInTimeZone
public boolean isColonIncludedInTimeZone()Accessor for checking whether this instance would include colon within timezone serialization or not: if {code true}, timezone offset is serialized like-06:00; if {code false} as-0600.NOTE: only relevant for serialization (formatting), as deserialization (parsing) always accepts optional colon but does not require it, regardless of this setting.
- Returns:
trueif a colon is to be inserted between the hours and minutes of the TZ offset when serializing as String; otherwisefalse- Since:
- 2.9.1
-
parse
- Overrides:
parsein classDateFormat- Throws:
ParseException
-
parse
- Specified by:
parsein classDateFormat
-
format
- Specified by:
formatin classDateFormat
-
toString
-
toPattern
-
equals
- Overrides:
equalsin classDateFormat
-
hashCode
public int hashCode()- Overrides:
hashCodein classDateFormat
-