使用 google gson 转换Timestamp或Date类型为JSON字符串.(转载)

原文出处:http://www.cnblogs.com/qufanblog/p/4223339.html

创建类型适配类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.lang.reflect.Type; 
import java.sql.Timestamp; 
import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
   
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; 
   
public class TimestampTypeAdapter implements JsonSerializer<Timestamp>, JsonDeserializer<Timestamp>{ 
    private final DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    public JsonElement serialize(Timestamp src, Type arg1, JsonSerializationContext arg2) { 
        String dateFormatAsString = format.format(new Date(src.getTime())); 
        return new JsonPrimitive(dateFormatAsString); 
    
   
    public Timestamp deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) 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); 
        
    
   

  类型适配类

   应用类型适配器 写道

 

1
2
Gson gson = new GsonBuilder().registerTypeAdapter(Timestamp.class,new TimestampTypeAdapter()).setDateFormat("yyyy-MM-dd HH:mm:ss").create();
String jsonString = gson.toJson(resourceInfo,ResourceGeoInfo.class);

 

 Date 类型的时间转换第二种方式;

 Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();  
String jsonString = gson.toJson(new Date(System.currentTimeMillis()),Date.class);  
System.out.println(jsonString); 
posted @ 2017-05-03 15:19  青青子衿J  阅读(1220)  评论(0)    收藏  举报