2016-11-11 1 views
2

Я создал андроид аппликатоп с отдыхом api. Здесь я использовал gson для остальных api и использовал retrofit для подключения этого приложения api and android для отдыха.Android: java.text.ParseException: Непревзойденная дата

В моем приложении я попытался получить некоторые данные из остального api, используя идентификатор. Затем я получил следующий журнал ошибок (я не опубликовал свое имя приложения с этим журналом ошибок).

Должен ли я изменить некоторые свойства в режиме отдыха api? или любые изменения в приложении. В настоящее время я тестирую свое приложение для Android с помощью rest api на localhost.

Что мне делать, чтобы справиться с этим исключением?

Это мой журнал ошибок,

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 

Update

я нашел следующую строку кода в моем дооснащения вызова, я думаю, что это является причиной для исключения

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 одинаковы.
В вашем случае проверьте тип переменной «Дата» (вы можете иметь другое имя).