mybatis(结合jefast框架)写入日期字段出现格式错误的问题及原因(springboot)

添加日期字段,想要显示2000-01-01格式,却出现2000-01-01 00:00:00的情况或者反之

写springboot项目的时候出现时间格式错误使用
@DateTimeFormat(pattern = “yyyy-MM-dd”)或者
@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)
就可以修改和显示日期

在这里插入图片描述

在mybatis中却不可以,理由在下面归纳
需要写@JsonFormat这个注解

@JsonFormat(pattern = “yyyy-MM-dd”,timezone = “GTM+8”)
//pattern是日期格式,timezone是时区
private Date studentBirthday;

mybatis(结合jefast框架)写入日期字段出现格式错误的问题及原因(springboot)_第1张图片

原因:

@JsonFormat既可以约束前端传入的时间类型参数格式,也可以约束后端响应前端的时间类型格式;
@DateTimeFormat只能约束前端传入的时间类型参数格式,且如果单独使用@DateTimeFormat时,响应给前端的时间会比实际时间晚8个小时(时区原因)。需要设置时区(timezone = “GTM+8”)

通俗些说

我们在前台写的日期,提交到后台,我们希望直接变为data类型,这样直接窜入数据库,而不是string接收然后在通过simpleDateFormat进行格式转换,可以直接使用@DateTimeFormat注解(@DateTimeFormat注解解决前台string类型与后台date类型的转换)
我们从数据库查询到了日期,然后要把日期转变成string类型显示,就可以直接使用@JsonFormat注解(@JsonFormat注解解决后台date类型与前台string类型的转换)

你可能感兴趣的:(开源,数据库,java)