2017-02-22 91 views
0

在Android上試圖解析此日期字符串: 2017-02-21T00:45:03-05:00 與GSON 2.8.0使用UtcDateTypeAdapter我得到一個異常: Caused by: com.google.gson.JsonParseException: java.text.ParseException: Failed to parse date ["2017-02-21T00:45:03-05:00']: null (at offset 0) at com.google.gson.typeadapters.UtcDateTypeAdapter.read(UtcDateTypeAdapter.java:66) at com.google.gson.typeadapters.UtcDateTypeAdapter.read(UtcDateTypeAdapter.java:39) ... 爲什麼我會用GSON解析一個有效的UTC日期的異常?

但顯然,日期是有效的格式。

回答

0

因此,事實證明,我在Android的舊版(API < 23)版本中使用了 EN(即AR)語言環境,以及在該語言環境下處理時區ID的方式。

有問題的代碼是: TimeZone timezone = TimeZone.getTimeZone(timezoneId); if (!timezone.getID().equals(timezoneId)) { throw new IndexOutOfBoundsException(); }

正如在舊版本的Android在timezone.getID()與timezoneId上面的代碼的值是: GMT-٠٥:٠٠ VS GMT-05:00