2016-11-11 145 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響應中的變量類型相同。
在你的情況下檢查「日期」類型(你可能有不同的名字)變量。