Я пытаюсь разобрать дату, которая выглядит так: Sat Sep 19 2020 07:14 AM PDT
в ZonedDateTime
.
Я использую этот форматтер
DateTimeFormatter.ofPattern(
"EEE MMM dd yyyy hh:mm a zzz",
Locale.US
)
и я пытаюсь преобразовать строку с помощью
ZonedDateTime.parse(
value,
formatter
)
Однако это вызывает следующее исключение: org.threeten.bp.format.DateTimeParseException: Text 'Sat Sep 19 2020 07:14 AM PDT' could not be parsed at index 25 at $.root.bsa[0].posted
Я не совсем уверен, где ошибка в моей строке формата даты: я прогнал ее через http://www.fileformat.info/tip/java/simpledateformat.html для проверки, но похоже, что форматирование там правильное.
Дополнительный контекст: этот код выполняется в адаптере Moshi и в приложении для Android:
class ZonedDateTimeAdapter {
private val formatter = DateTimeFormatter.ofPattern( "EEE MMM dd yyyy hh:mm a z", Locale.US )
@FromJson
fun fromJson(value: String): ZonedDateTime {
return ZonedDateTime.parse( value, formatter )
}
@ToJson
fun toJson(value: ZonedDateTime): String {
return value.toString()
}
}
z
достаточно. - person akuzminykh   schedule 19.09.20202020-09-19T07:14-07:00[Canada/Yukon]
, немного удивлен выбором часового пояса, но никаких исключений не получил, - person Ole V.V.   schedule 19.09.2020ZonedDateTime
летом, скажем, в часовом поясе Америки/Монреаля, используя тот же форматтер? Спрашиваю, потому что индекс 25 находится там, гдеPDT
, поэтому проблема с аббревиатурой часового пояса. Также вы проверяли свою строку на наличие непечатаемых символов? - person Ole V.V.   schedule 20.09.2020