springboot时区问题

1、spring.jackson.*** 会配置时区

2、实体类的注解@JsonFormat也有一个时区

3、mysql连接的时候,serverTimezone也有一个时区

4、操作系统还有一个时区

5、mysql也有一个时区

这些时区区别在哪?

比如前端传过来一个yyyy-MM-dd HH:mm:ss格式的字符串,1或者2是springMVC用来把这个字符串转换成Date格式的值的,Date的值会对应一个时间戳,

这个时间戳的值就要根据配置的时区来,其中1的优先级高于2

而持久化框架传递给MySQL的sql语句中,时间也会转化成一个日期字符串,这个字符串是根据系统的时区和上面说的时间戳共同生成。

而mysql收到这个日期字符串,要根据mysql的时区来确定转换成什么值(这个值和一个唯一的时间戳也是一一对应的)存起来。而mysql的时区,

如果连接指定了(比如3),就用指定的,如果没有,就用自己设置的time_zone的值。

说起来好混乱,简单的做法就是,如果服务器和访问的客户都在国内,所有的都设置成东八区的就可以了。

猜你喜欢

转载自www.cnblogs.com/chuliang/p/12762812.html