为什么我得到一个使用GSON解析有效UTC日期的异常?

时间:2017-02-22 00:13:24

标签: android gson

在Android上尝试解析此日期字符串: 2017-02-21T00:45:03-05:00 使用UTcDateTypeAdapter使用GSON 2.8.0我得到一个例外: 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) ...

很明显,日期的格式有效。

1 个答案:

答案 0 :(得分:0)

事实证明关键是我在Android(API< 23)版本的Android上使用 EN(即AR)Locale以及在此下处理时区ID的方式区域设置。

违规代码是: TimeZone timezone = TimeZone.getTimeZone(timezoneId); if (!timezone.getID().equals(timezoneId)) { throw new IndexOutOfBoundsException(); }

与早期版本的Android一样,上述代码中timezone.getID()与timezoneId的值为: GMT-٠٥:٠٠ vs GMT-05:00