package de.galan.verjson.serializer; import static de.galan.commons.time.Instants.*; import java.io.IOException; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; /** * Deserializes String "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" back to java.time.ZonedDateTime. * * @author daniel */ public class ZonedDateTimeSerializer extends JsonSerializer<ZonedDateTime> { private static final DateTimeFormatter DTF = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss[.SSS]'Z'").withZone(ZONE_UTC); @Override public void serialize(ZonedDateTime value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeString(DTF.format(value)); } @Override public Class<ZonedDateTime> handledType() { return ZonedDateTime.class; } }