Skip to content

Instantly share code, notes, and snippets.

@gbzarelli
Last active May 18, 2023 17:18
Show Gist options
  • Save gbzarelli/1b6c77d3edd2663a775b1e092fcdff49 to your computer and use it in GitHub Desktop.
Save gbzarelli/1b6c77d3edd2663a775b1e092fcdff49 to your computer and use it in GitHub Desktop.
Gson Adapter converter Date to String in ISO UTC ( ISO 8601 ) format - Serializer and Deserializer
import com.google.gson.*;
import java.lang.reflect.Type;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
public class GsonUTCDateAdapter implements JsonSerializer<Date>, JsonDeserializer<Date> {
@Override
public JsonElement serialize(Date date, Type type, JsonSerializationContext jsonSerializationContext) {
return new JsonPrimitive(getNewDateFormat().format(date));
}
@Override
public Date deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) {
try {
return getNewDateFormat().parse(jsonElement.getAsString());
} catch (ParseException e) {
throw new JsonParseException(e);
}
}
private DateFormat getNewDateFormat() {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.getDefault());
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
return dateFormat;
}
}
private final Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new GsonUTCDateAdapter()).create();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment