content: /*
   *                       ######
   *                       ######
   * ############    ####( ######  #####. ######  ############   ############
   * #############  #####( ######  #####. ######  #############  #############
   *        ######  #####( ######  #####. ######  #####  ######  #####  ######
   * ###### ######  #####( ######  #####. ######  #####  #####   #####  ######
   * ###### ######  #####( ######  #####. ######  #####          #####  ######
   * #############  #############  #############  #############  #####  ######
   *  ############   ############  #############   ############  #####  ######
   *                                      ######
   *                               #############
   *                               ############
   *
   * Adyen Java API Library
   *
   * Copyright (c) 2017 Adyen B.V.
   * This file is open source and available under the MIT license.
   * See the LICENSE file for more info.
   */
  package com.adyen.serializer;
  
  import com.google.gson.JsonElement;
  import com.google.gson.JsonPrimitive;
  import com.google.gson.JsonSerializationContext;
  import com.google.gson.JsonSerializer;
  import java.lang.reflect.Type;
  import java.text.SimpleDateFormat;
  import java.util.Date;
  import java.util.Locale;
  import java.util.TimeZone;
  
  public class DateTimeISO8601Serializer implements JsonSerializer<Date> {
    public static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ssXXX";
  
    /** Format to ISO 8601 format: YYYY-MM-DDThh:mm:ssTZD */
    @Override
    public JsonElement serialize(Date date, Type typeOfSrc, JsonSerializationContext context) {
      SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT, Locale.ENGLISH);
      formatter.setTimeZone(TimeZone.getDefault());
      return new JsonPrimitive(formatter.format(date));
    }
  }
  