2016-11-11 78 views
2

我创建了一个android applicatopn与休息api。在这里,我用其余的api使用gson,并使用retrofit连接这个休息api和android应用程序。Android:java.text.ParseException:无法解析日期

在我的应用程序中,我试图通过使用id从其余api获取一些数据。然后我得到了以下错误日志(我没有发布我的应用程序名称和这个错误日志)。

我应该改变rest api中的一些属性吗?或对应用程序的任何更改。目前我测试我的android应用程序与本地主机上休息api。

我应该怎么做来处理这个异常?

这是我的错误日志,

com.google.gson.JsonSyntaxException: 1989-10-11 
at com.google.gson.DefaultDateTypeAdapter.deserializeToDate(DefaultDateTypeAdapter.java:107) 
at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:82) 
at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:35) 
at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58) 
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:103) 
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:196) 
at com.google.gson.Gson.fromJson(Gson.java:810) 
at com.google.gson.Gson.fromJson(Gson.java:775) 
at retrofit.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:36) 
at retrofit.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:24) 
at retrofit.OkHttpCall.parseResponse(OkHttpCall.java:148) 
at retrofit.OkHttpCall.access$100(OkHttpCall.java:29) 
at retrofit.OkHttpCall$1.onResponse(OkHttpCall.java:94) 
at com.squareup.okhttp.Call$AsyncCall.execute(Call.java:168) 
at com.squareup.okhttp.internal.NamedRunnable.run(NamedRunnable.java:33) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
at java.lang.Thread.run(Thread.java:841) 
Caused by: java.text.ParseException: Unparseable date: "1989-10-11" (at offset 10) 
at java.text.DateFormat.parse(DateFormat.java:555) 
at com.google.gson.DefaultDateTypeAdapter.deserializeToDate(DefaultDateTypeAdapter.java:105) 
... 17 more 

更新

我发现下面的代码行中我的改装电话,我认为这是异常的原因,

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

但我不知道如何将这种日期格式转换为通用日期格式。

目前我不知道如何处理这个异常。有什么想法?

+1

可能的[GSON - 日期格式]重复(http://stackoverflow.com/questions/6873020/gson-date-format) – AxelH

+0

@AxelH:谢谢你,链接。为您的评论+1。 – Barrier

回答

1

其变量类型不匹配异常。确保模型类和json响应中的变量类型相同。
在你的情况下检查“日期”类型(你可能有不同的名字)变量。