Excluir milisegundos de formato de fecha (Jackson + java 8 fechas)

Daniel:

Estoy tratando de averiguar por qué formatos Jackson (2.9.5) data de java 8 incorrectamente.

data class Test(
        val zonedDateTim: ZonedDateTime = ZonedDateTime.now(),
        val offsetDateTim: OffsetDateTime = OffsetDateTime.now(),
        val date: Date = Date(),
        val localDateTime: LocalDateTime = LocalDateTime.now()
)

val mapper = ObjectMapper().apply {
    registerModule(KotlinModule())
    registerModule(JavaTimeModule())
    dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss")
    enable(SerializationFeature.INDENT_OUTPUT)
}

println(mapper.writeValueAsString(Test()))

Desde el formato de fecha que he proporcionado yo esperaría ver las fechas con formato sin milisegundos pero en cambio las miradas resultado como este:

{
  "zonedDateTim" : "2018-07-27T13:18:26.452+02:00",
  "offsetDateTim" : "2018-07-27T13:18:26.452+02:00",
  "date" : "2018-07-27T13:18:26",
  "localDateTime" : "2018-07-27T13:18:26.452"
}

Cualquier ayuda es muy apreciada.

Mejor, Daniel

assylias:

dateFormatsólo se aplica a Dateobjetos - los otros 3 objetos son manejados por el JavaTimeModule, que utiliza el formato de ISO de forma predeterminada.

Si quieres un formato diferente, puede utilizar:

val format = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");

val javaTimeModule = JavaTimeModule();
javaTimeModule.addSerializer(LocalDateTime.class, LocalDateTimeSerializer(format));
javaTimeModule.addSerializer(ZonedDateTime.class, ZonedDateTimeSerializer(format));
mapper.registerModule(javaTimeModule);

También puede ser necesario añadir mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);pero no estoy 100% seguro de que es necesario.

También tenga en cuenta que con ese formato, perderá la zona horaria y la información de desplazamiento. Lo que puede necesitar un formato diferente para / por zonas DateTime-Offset.

Supongo que te gusta

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