001package com.thed.util.gson; 002 003import java.lang.reflect.Type; 004import java.text.SimpleDateFormat; 005import java.util.Date; 006 007import com.google.gson.Gson; 008import com.google.gson.GsonBuilder; 009import com.google.gson.JsonDeserializer; 010import com.google.gson.JsonElement; 011import com.google.gson.JsonPrimitive; 012import com.google.gson.JsonSerializationContext; 013import com.google.gson.JsonSerializer; 014 015public class CustomDateUtil { 016 public static GsonBuilder builder = new GsonBuilder(); 017 018 static { 019 builder.registerTypeAdapter(java.util.Date.class, new JsonSerializer<java.util.Date>() { 020 @Override 021 public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) { 022 return new JsonPrimitive(src.getTime()); 023 } 024 }); 025 026 builder.registerTypeAdapter(java.util.Date.class, new JsonDeserializer<java.util.Date>() { 027 @Override 028 public java.util.Date deserialize(com.google.gson.JsonElement p1, java.lang.reflect.Type p2, 029 com.google.gson.JsonDeserializationContext p3) { 030 if(p1.getAsJsonPrimitive().isString()) { 031 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 032 try { 033 Date date = formatter.parse(p1.getAsString()); 034 return date; 035 } catch(Exception exc) { 036 exc.printStackTrace(); 037 } 038 039 } 040 return new java.util.Date(p1.getAsLong()); 041 } 042 }); 043 } 044 045 public static Gson gson = builder.create(); 046} 047