4

我有一个具有 java.util.Date 字段的 Java 对象。当我对 Date 对象执行 System.out.println() 时,它会打印“2012-11-03”。然后,当我对 Java 对象执行 gson.toJson() 时,我可以看到 Date 字段的 Json 表示是“2012 年 11 月 3 日”。然后,当我尝试使用 gson.fromJson() 从 Json 字符串创建 Java 对象的另一个实例时,出现以下异常:

com.google.gson.JsonSyntaxException: Nov 3, 2012
    at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:81)
    at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:66)
    at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:41)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172)
    at com.google.gson.Gson.fromJson(Gson.java:795)
    at com.google.gson.Gson.fromJson(Gson.java:761)
    at com.google.gson.Gson.fromJson(Gson.java:710)
    at com.google.gson.Gson.fromJson(Gson.java:682)

为什么 Gson 不能处理自己的日期格式?

4

1 回答 1

4

使用 gsonbuilder 创建 gson 时必须使用 setDateFormat。

喜欢:

Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").create();

于 2013-03-26T09:42:40.873 回答