1、spring.jackson.*** 会配置时区
2、实体类的注解@JsonFormat也有一个时区
3、mysql连接的时候,serverTimezone也有一个时区
4、操作系统还有一个时区
5、mysql也有一个时区
流程:
1、前端传给mvc一个字符串的时候,mvc要根据"yml中jackson的配置优先于@JsonFormat指定的时区"的规则,转换成一个时间戳
2、mybatis(hibernate)要把这个时间戳,根据系统的时区,转换成一个字符串,传递给mysql
3、mysql收到这个字符串,要根据 "会话指定的时区 优先于 mysql默认的的时区"的规则,转成一个时间戳存储,反之,从mysql中查询日期,也是一样的规则
如果会话的时区不变,存储和读取收到的时间是一致的。