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中查询日期,也是一样的规则

 

如果会话的时区不变,存储和读取收到的时间是一致的。