使用 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);