package cn.alphabets.light.model;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.ISODateTimeFormat;
import java.lang.reflect.Type;
import java.util.Date;
/**
* GSON serialiser/deserialiser for converting Date
*/
public class DateConverter implements JsonSerializer<Date>, JsonDeserializer<Date>
{
@Override
public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context)
{
final DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
return new JsonPrimitive(fmt.print(new DateTime(src)));
}
@Override
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException
{
final DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
return fmt.parseDateTime(json.getAsString()).toDate();
}
}