springboot项目 时间不准确 -- ubuntu中docker时区调整
springboot中 new Date() 获取的日期不准确获取的时间与实际时间相差8小时原因初步断定是时区错乱导致,实际系统的运行环境是在docker中,docker时区发生错误,导致时间错乱。
·
一、问题
springboot中 new Date() 获取的日期不准确
获取的时间与实际时间相差8小时
原因
初步断定是时区错乱导致,实际系统的运行环境是在docker中,docker时区发生错误,导致时间错乱。
二、解决
1、通过传递环境变量改变容器时区-e TZ=Asia/Shanghai
docker run -e TZ=Asia/Shanghai
2、在Dockerfile中设置镜像时区:
因为Ubuntu 基础镜像中没有安装了 tzdata 包,因此我们需要先安装 tzdata 包。
FROM xxx:xxxx
ENV TZ=Asia/Shanghai \
DEBIAN_FRONTEND=noninteractive
RUN apt update \
&& apt install -y tzdata \
&& ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime \
&& echo ${TZ} > /etc/timezone \
&& dpkg-reconfigure --frontend noninteractive tzdata \
&& rm -rf /var/lib/apt/lists/*
3、将宿主机与容器的时间进行挂载
-v /etc/localtime:/etc/localtime
4、进容器内部设置
进入容器
docker exec -it 容器名 /bin/bash
设置时区
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)