@DateTimeFormat用法、@JsonFormat格式化日期时间后比原来的时间少了八小时问题用法

时间:2025-04-02 19:48:13

前后端数据传输时,@JsonFormat注解作用在日期类型字段上可以格式化日期为字符串提供给前端,之所以会少了八小时是因为时区问题,正确的写法如下:

@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date testDate;

说明:

@DateTimeFormat:作用域为入参,针对路径传参方式生效,作用是入参日期格式化,前端传入日期格式字符串到后端,会自动转换为日期类型
@JsonFormat:作用域为出参、入参,针对 @RequestBody 请求体入参或出参都有效果,作用是把日期类型和日期字符串相互转换