Почему я получаю исключение при разборе действительной даты UTC с GSON?

На 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) ...

Все же ясно, что дата в допустимом формате.

1 ответ

Получается, что ключевые вещи заключались в том, что я использовал не EN (то есть AR) локаль в более старых (API < 23) версиях Android и то, как идентификаторы часовых поясов обрабатываются в этой локали.

Оскорбительный код: TimeZone timezone = TimeZone.getTimeZone(timezoneId); if (!timezone.getID().equals(timezoneId)) { throw new IndexOutOfBoundsException(); }

Как и в более старых версиях Android, значения в приведенном выше коде для timezone.getID() и timezoneId:GMT-٠٥:٠٠ против GMT-05:00

Другие вопросы по тегам