注解 @JsonFormat 与 @DateTimeFormat 的使用

@JsonFormat (双端互传)

com.fasterxml.jackson.annotation.JsonFormat;
将字符串的时间转换成Date类型。此注解只能用于form表单请求和get请求

public class Sys{
    
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
}

@JsonFormat 默认的时区是 Greenwich Time,格林威治时间,而我们是在东八区。传递时间比数据库中的时间少八个小时。故需加上timezone="GMT+8

@DateTimeFormat (前端传后端日期格式转化)

将字符串的时间转换成Date类型。此注解只能用于json请求。在Controller层入参处需要用@RequestBody

情况一 前端是时间组件 <el-date-picker 或其他

时间组件默认传递格式:2023-01-01 01:01:01 则后端不需要加 @DateTimeFormat 注释

情况二 前端未设置组件

时间格式是默认的   2023-07-01T00:00:00.000+0800  
则返回后端会报错   JSON parse error: Cannot deserialize value of type

建议默认装上@JsonFormat

参考 @JsonFormat

猜你喜欢

转载自blog.csdn.net/weixin_45725923/article/details/132131775