正文
1.修改mysql时区
查看时区:
mysql> show variables like '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | | | time_zone | SYSTEM | +------------------+--------+ 2 rows in set, 1 warning (0.00 sec)
MySQL 的时区默认与系统时区一致。
配置 MySQL 默认时区
MySQL使用的time_zone属性是UTC时间即:+00:00,而北京时间比UTC时间早8小时,即:UTC+08:00
永久修改
vi /etc/my.cnf
在 [mysqld] 下面添加一行:default-time_zone = '+8:00'
重启 MySQL 生效:systemctl restart mysqld
临时修改
mysql> set time_zone = ‘+8:00’; mysql> set global time_zone = ‘+8:00’;
优点:立即生效,不用重启 MySQL
缺点:重启 MySQL 后会失效
配置默认时区后
mysql> show variables like '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | CST | | time_zone | +08:00 | +------------------+--------+ 2 rows in set (0.03 sec) mysql> select @@global.time_zone,@@session.time_zone,@@global.system_time_zone; +--------------------+---------------------+---------------------------+ | @@global.time_zone | @@session.time_zone | @@global.system_time_zone | +--------------------+---------------------+---------------------------+ | +08:00 | +08:00 | CST | +--------------------+---------------------+---------------------------+ 1 row in set (0.00 sec)
2.修改服务器系统时区
查看服务器时区
cat /etc/timezone #这里的时区是亚洲上海 Asia/Shanghai
如果你的服务器不是亚洲上海的时区,需要对其进行修改
timedatectl set-timezone "Asia/Shanghai"
3.修改docker容器时区
#根据容器名查询容器ID containerId=`docker ps -a | grep -w ${project_name}:${tag} | awk '{print $1}'` #复制服务器系统时区到容器内 容器时区改用服务器系统时区 docker cp /usr/share/zoneinfo/Asia/Shanghai ${containerId}:/etc/localtime
4.在JAVA服务代码中更改时区
/** * @Author liuy * @Description 服务器时区调整util * @Date 2022/4/7 11:02 * @Version 1.0 */ @Component public class TimeZoneUtil { @PostConstruct void started() { TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); } }
5.在与数据库连接配置文件中配置上海的时区
url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
如果单一的方法无效可以结合以上五种方法可使用