如何在Gson中使用@SerializableName编辑日期格式?

时间:2019-05-18 15:37:01

标签: java gson date-format

我使用Google Gson映射jsonJava文件中的数据。但是我遇到了日期格式错误。

那是我看到的错误;

Exception in thread "main" com.google.gson.JsonSyntaxException: Sat May 18 15:30:07 +0000 2019
at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:87)
at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:75)
at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:46)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
at com.google.gson.Gson.fromJson(Gson.java:927)
at com.google.gson.Gson.fromJson(Gson.java:892)
at com.google.gson.Gson.fromJson(Gson.java:841)
at com.google.gson.Gson.fromJson(Gson.java:813)
at app.producer.TwitterKafkaProducer.run(TwitterKafkaProducer.java:75)
at app.App.main(App.java:13)
Caused by: java.text.ParseException: Failed to parse date ["Sat May 18 15:30:07 +0000 2019"]: Invalid number: Sat 
at com.google.gson.internal.bind.util.ISO8601Utils.parse(ISO8601Utils.java:274)
at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:85)
... 10 more
Caused by: java.lang.NumberFormatException: Invalid number: Sat 
at com.google.gson.internal.bind.util.ISO8601Utils.parseInt(ISO8601Utils.java:311)
at com.google.gson.internal.bind.util.ISO8601Utils.parse(ISO8601Utils.java:129)
... 11 more

这是我序列化传入的json的地方:

@SerializedName("created_at")
private Date createdAt;

我的json对象:

{
 "created_at": "Sat May 18 16:11:36 +0000 2019",
 "id": 1129781592514355205
}

我注意到该错误是由格式失败引起的。但是在有关如何解决此问题的研究中,我没有结论。如果您能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

此异常

webView.setWebChromeClient(new WebChromeClient(){
        @TargetApi(Build.VERSION_CODES.LOLLIPOP)
        @Override
        public void onPermissionRequest(final PermissionRequest request) {
                request.grant(request.getResources());
        }
    });

您的Gson似乎没有正确配置输入格式Caused by: java.lang.NumberFormatException: Invalid number: Sat ,因此您应该执行以下操作:

Sat May 18 15:30:07 +0000 2019