0
点赞
收藏
分享

微信扫一扫

@JSONField 和 @JsonFormat,前后端日期格式转换

40dba2f2a596 2022-02-22 阅读 103
DTO : 前端向后端接口请求时的对象。
VO: 后端向前端响应的对象。

前端:vue
后端:SpringBoot + MybatisPlus

涉及的两个包:
	com.alibaba.fastjson.annotation.JSONField;
	com.fasterxml.jackson.annotation.JsonFormat;

经验证:
1.如果是DTO中的日期字段,如:private Date start;
	**应该加: 
		@JSONField(format = "yyyy-MM-dd HH:mm:ss")**
	如果加的是:
		@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8"),
	会出现问题:
		前端选择日期1.11,存到数据库发现是1.10,或者我直传日期,时间默认00:00:00,但存进去是08:00:00

2.如果是VO中的日期字段,如:private Date start;
	**应该加: 
		@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8"),
	如果加的是:
		@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	会出现问题:
		返回给前端页面显示的是:时间戳: 1645527428033
	注意:
		此处必须有 timezone="GMT+8" ,否则显示出的时间会差几个小时,导致对不上
举报

相关推荐

0 条评论