@JsonFormat和@DateTimeFormat

JsonFormatDateTimeFormat 是两个不同的注解,它们用于不同的场景。

JsonFormat 是 Jackson 库中的注解,它用于指定 Java 对象在序列化或反序列化为/从 JSON 时的格式。

DateTimeFormat 是 Joda-Time 库中的注解,它用于指定日期和时间字段的格式。

因此,如果你使用 Jackson 库处理 JSON 数据,那么你应该使用 JsonFormat 注解;如果你使用 Joda-Time 库处理日期和时间,那么你应该使用 DateTimeFormat 注解。

 

一般都是使用@DateTimeFormat把传给后台的时间字符串转成Date,使用@JsonFormat把后台传出的Date转成时间字符串,但是@DateTimeFormat只会在类似@RequestParam的请求参数上生效,如果@DateTimeFormat放到@RequestBody下是无效的。

在@RequestBody中则可以使用@JsonFormat把传给后台的时间字符串转成Date,也就是说@JsonFormat其实既可以把传给后台的时间字符串转成Date也可以把后台传出的Date转成时间字符串。

前端get请求如下传参,后端写如下注解才能接收到参数,不如@JsonFormat方便

?date=2021-11-11 23:23:23
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@RequestParam LocalDateTime date
posted @ 2023-02-11 20:36  陈扬天  阅读(447)  评论(0编辑  收藏  举报