项目场景:
后端传递给前端一个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的配置文件中配置时间格式和时区

最后结果:
成功将后端结果展示在前端页面:


本文讨论了后端与前端在处理User对象中的Date类型数据时遇到的时间格式和时区问题,提供了两种解决方案:一是通过在User类中使用@JsonFormat和@DateTimeFormat注解进行格式设置,二是通过SpringBoot配置全局时间格式和时区。最终实现了后端数据在前端的正确显示。
2170

被折叠的 条评论
为什么被折叠?



