SpringBoot项目运行起来少8小时时区设置问题

在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:还是得多尝试才能深入的理解为什么,从而更好的解决问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容