项目场景:
后端传递给前端一个User类型的数据,User类型中有一个java.util.Date类型的属性
问题描述
后端打印出的格式如下图所示:(yyyy-MM-dd hh:mm:ss)
而前端显示的结果是如下图所示:
通过对比两个时间的格式:发现不仅仅是时间格式有所不同,两端的时间的时区也不同,相差了8个小时.
解决方案:
方案一:
在User类的Date类型的属性上添加注解
@JsonFormat(pattern=“yyyy-MM-dd HH:mm:ss”, timezone=“GMT+8”)
@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)
public class User {
private Integer id;
private String userName;
private String password;
private String name;
private String email;
private String phone;
private String address;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
}
@JsonFormat用于输出的时候解析,并且设置解析时区
@DateTimeFormat用于接收 前端传的时间值自动转换 可以是Date 可以是String
方案二:
在springboot的配置文件中配置时间格式和时区
最后结果:
成功将后端结果展示在前端页面: