Tenemos un proyecto Springboot, nuestra clase de aplicaciones de producción contiene la siguiente anotación: @EnableWebMvc (), por lo que una llamada a un punto final devuelve la siguiente. Tenga en cuenta que las fechas se devuelven como largas valores.
{
"expirationDate": 1597291200000,
"dateOfBirth": 271828800000
}
Sin embargo, en nuestra rama de desarrollo de la clase de aplicación nos retiramos esa anotación y se obtiene la respuesta abajo después de llamar al mismo punto final. Tenga en cuenta que ahora las fechas se devuelven como marcas de tiempo . ¿Cómo podríamos cambiar nuestra application.yaml el fin de recibir las fechas como tiempo sin tener la anotación @EnableWebMvc (). Para nosotros, la mejor solución sería en el application.yaml, pero cualquier otra sugerencia es bienvenida.
{
"expirationDate": "2020-08-13T04:00:00.000+0000",
"dateOfBirth": "1978-08-13T04:00:00.000+0000"
}
Esto es posible utilizando la JsonFormat
anotación proporcionada por Jackson. En su respectiva clase de entidad que se está volviendo como anotar la respuesta de los campos usando JsonFormat y proporcionar la forma Shape.NUMBER anotación.
@JsonFormat(shape = JsonFormat.Shape.NUMBER)
final ZonedDateTime expirationDate;
@JsonFormat(shape = JsonFormat.Shape.NUMBER)
final ZonedDateTime dateOfBirth;
Esto también es posible lograr a nivel mundial a través del archivo de propiedades.
propiedades
spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS = true
yamla
spring:
jackson:
serialization:
WRITE_DATES_AS_TIMESTAMPS: true