SpringBoot项目运行起来少8小时时区设置问题
2022-12-10 本文已影响0人
葉糖糖
在Linux系统中运行.sh脚本文件,然后配合docker实现自动化部署,提高生产效率。
一、运行.sh脚本文件
1、cd到目标文件夹;
2、给.sh文件赋权限;
chmod u+x 文件名.sh
3、执行脚本文件
sh 文件名.sh
二、Docker容器同步宿主机时区及时间
起因是项目部署到docker环境,数据库中的时间总是少8个小时,然后开始了一系列望闻问切,甚至连宿主机的时钟都修复了,最后发下没什么效果,但是不影响我们学习如何同步时区。
# 方法1:直接在宿主机操作
docker cp /etc/localtime 【容器ID或者NAME】:/etc/localtime
docker cp -L /usr/share/zoneinfo/Asia/Shanghai 【容器ID或者NAME】:/etc/localtime
# 方法2:登录容器同步时区timezone
ln -sf /usr/share/zoneinfo/Asia/Singapore /etc/localtim
三、如何解决问题的?
话接上题目,最后是在程序里的Application启动类中设置时区来解决这个问题,虽然这不是最好的方案,但是管用啊。╮(╯▽╰)╭
@PostConstruct
void started() {
TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
}
PS:还是得多尝试才能深入的理解为什么,从而更好的解决问题。