2017-02-22 89 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