deserializar encargo una fecha con el formato

Jim:

[ "Last_modified"])] con la raíz de la causa java.time.format.DateTimeParseException: Texto '2018-06-06T13: 19: 53 + 00: 00' No se pudo analizar, texto no analizada encontrar en el índice 19

El formato de entrada es 2018-06-06T13:19:53+00:00
Es un formato extraño.

He probado lo siguiente:

public class XYZ {  
    @DateTimeFormat(pattern = "yyyy-MM-ddTHH:mm:ss+00:00", iso = ISO.DATE_TIME)
    private LocalDateTime lastModified;
}  
akortex91:

No hay nada que nos impida la creación de su propia deserializer. Un ejemplo muy ingenua podría ser la siguiente:

public class LocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {

    private static final String PATTERN = "yyyy-MM-dd'T'HH:mm:ss+00:00";

    private final DateTimeFormatter formatter;

    public LocalDateTimeDeserializer() {
        this.formatter = DateTimeFormatter.ofPattern(PATTERN);
    }

    @Override
    public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
        return LocalDateTime.parse(p.getText(), formatter);
    }
}

La única cosa que hay que notar es que tendrá que escapar de la 'T' añadiendo comillas simples alrededor de ella.

Con la deserializer en su lugar simplemente puede realizar anotaciones en el campo de este modo:

@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime dateTime;

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=209324&siteId=1
Recomendado
Clasificación