美文网首页SpringCloud程序员
SpringBoot项目运行起来少8小时时区设置问题

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

作者: 葉糖糖 | 来源:发表于2022-12-10 14:59 被阅读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:还是得多尝试才能深入的理解为什么,从而更好的解决问题。

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/ohfxqdtx.html