Мы получаем HttpResponse с датой в виде одного атрибута json, дата форматируется в ISO8601 (например, 2020-03-13T00: 00: 35.570 + 0000), но Джексон выдает следующее исключение:
java.time.format.DateTimeParseException: Text '2020-03-13T00:00:35.570+0000' could not be parsed at index 23
Я написал следующий тест (спок), который невозможно воспроизвести. Мне нужно знать, как разобрать дату. Спасибо за вашу помощь!
class TestJackson extends Specification{
def 'test date format'(){
given:
def jsonString = """{"myDate":"2020-03-13T00:00:35.570+0000"}"""
and:
def objectMapper = new ObjectMapper()
.registerModule(new JavaTimeModule())
.enable(SerializationFeature.INDENT_OUTPUT)
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
when:
def resp = objectMapper.readValue(jsonString, Response)
then:
resp.myDate != null
}
@Data
@NoArgsConstructor
@AllArgsConstructor
static class Response {
ZonedDateTime myDate
}
}
В тесте используются следующие зависимости:
- com.faster xml .jackson.core: jackson-databind: 2.10.3
- com.faster xml .jackson.datatype: jackson-datatype-jsr310: 2.10.3