问题:
解决过程:
- public
class TimestampTypeAdapter implements JsonSerializer<Timestamp>, JsonDeserializer<Timestamp>{ -
private final DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); -
public JsonElement serialize(Timestamp ts, Type t, JsonSerializationContext jsc) { -
String dfString = format.format(new Date(ts.getTime())); -
return new JsonPrimitive(dfString); -
} -
public Timestamp deserialize(JsonElement json, Type t, JsonDeserializationConte xt jsc) throws JsonParseException { -
if (!(json instanceof JsonPrimitive)) { -
throw new JsonParseException("The date should be a string value"); -
} -
-
try { -
Date date = format.parse(json.getAsString()); -
return new Timestamp(date.getTime()); -
} catch (ParseException e) { -
throw new JsonParseException(e); -
} -
} -
}
应用类型适配器
- GsonBuilder
gsonBuilder = new GsonBuilder(); - gsonBuilder.setDateFormat("yyyy-MM-dd
hh:mm:ss"); - gsonBuilder.registerTypeAdapter(Timestamp.class,new
TimestampTypeAdapter()); - Gson
GSON = gsonBuilder.create(); - String
json = GSON.toJson(new Timestamp((new Date()).getTime()));