查看电脑系统的时区:点击win10右下角通知,所有设置---->时间和语言。即可看到系统的时区:UTC+08:00
- 查看mysql时区并查看当前时间
SHOW VARIABLES LIKE '%time_zone%';
SELECT NOW()
结果
设置mysql时区为UTC,再查看当前日期。可以发现大约相差8个小时
SET time_zone='+0:00';
SHOW VARIABLES LIKE '%time_zone%';
SELECT NOW()
- 再看后台连接数据库
url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC
通过serverTimeZone 设置时区。
主要结果是:查询出来的日期不会受serverTimeZone的影响,但插入数据时会受到影响,会少大约8个小时。可能和java的时区有关,如果java的时区也是UTC插入到数据库的时间还会少吗。个人查的日期值是 new Date()。
- 再到后台传给前台的日期
Springboot默认使用Jackson框架,通常使用@JsonFormat或在applicaiton配置文件里进行配置