Java tutorial
/** * * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. * */ package com.microsoft.rest.serializer; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.module.SimpleModule; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.joda.time.format.ISODateTimeFormat; import java.io.IOException; /** * Custom serializer for serializing {@link DateTime} object into ISO8601 formats. */ public class DateTimeSerializer extends JsonSerializer<DateTime> { /** * Gets a module wrapping this serializer as an adapter for the Jackson * ObjectMapper. * * @return a simple module to be plugged onto Jackson ObjectMapper. */ public static SimpleModule getModule() { SimpleModule module = new SimpleModule(); module.addSerializer(DateTime.class, new DateTimeSerializer()); return module; } @Override public void serialize(DateTime value, JsonGenerator jgen, SerializerProvider provider) throws IOException { if (provider.isEnabled(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)) { jgen.writeNumber(value.getMillis()); } else { value = value.withZone(DateTimeZone.UTC); jgen.writeString(value.toString(ISODateTimeFormat.dateTime())); } } }