public class Iso8601Serializer
extends com.fasterxml.jackson.databind.ser.std.StdSerializer<java.time.ZonedDateTime>
ZonedDateTime
in ISO 8601 datetime format contain date, hours,
minutes, seconds and time zone.
The serializer should be used instead of JsonFormat.pattern()
because it does
not affect the tolerant deserialization Jackson provides by default.
Use the serializer at ZonedDateTime
properties to activate it:
class MyResource { @JsonSerialize(using = Iso8601Serializer.class) private ZonedDateTime createdAt; // writes json as {"createdAt": "2018-11-21T13:16:47Z"} for UTC // or {"createdAt": "2018-11-21T13:16:47+01:00"} for CET // ... } }
Note that there is a subclass to write including milli seconds: Iso8601Serializer.WithMillis
Modifier and Type | Class and Description |
---|---|
static class |
Iso8601Serializer.WithMillis
A serializer used to write
ZonedDateTime in ISO 8601 datetime format contain date,
hours, minutes, seconds, milli seconds and time zone. |
Modifier | Constructor and Description |
---|---|
|
Iso8601Serializer() |
protected |
Iso8601Serializer(java.lang.String pattern)
Constructor for subclasses that create a new
Iso8601Serializer for ZonedDateTime using a custom pattern for formatting. |
Modifier and Type | Method and Description |
---|---|
void |
acceptJsonFormatVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor,
com.fasterxml.jackson.databind.JavaType typeHint) |
void |
serialize(java.time.ZonedDateTime value,
com.fasterxml.jackson.core.JsonGenerator gen,
com.fasterxml.jackson.databind.SerializerProvider arg2) |
_neitherNull, _nonEmpty, createSchemaNode, createSchemaNode, findAnnotatedContentSerializer, findContextualConvertingSerializer, findConvertingContentSerializer, findFormatFeature, findFormatOverrides, findIncludeOverrides, findPropertyFilter, getSchema, getSchema, handledType, isDefaultSerializer, visitArrayFormat, visitArrayFormat, visitFloatFormat, visitIntFormat, visitIntFormat, visitStringFormat, visitStringFormat, wrapAndThrow, wrapAndThrow
public Iso8601Serializer()
protected Iso8601Serializer(java.lang.String pattern)
Iso8601Serializer
for ZonedDateTime
using a custom pattern for formatting.pattern
- the pattern used for formatting, see DateTimeFormatter.ofPattern(String)
public void serialize(java.time.ZonedDateTime value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider arg2) throws java.io.IOException
serialize
in class com.fasterxml.jackson.databind.ser.std.StdSerializer<java.time.ZonedDateTime>
java.io.IOException
public void acceptJsonFormatVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType typeHint) throws com.fasterxml.jackson.databind.JsonMappingException
acceptJsonFormatVisitor
in interface com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable
acceptJsonFormatVisitor
in class com.fasterxml.jackson.databind.ser.std.StdSerializer<java.time.ZonedDateTime>
com.fasterxml.jackson.databind.JsonMappingException