Linux、Docker环境下 new Date()与实际时间不符

问题描述:

项目打包部署到linux服务器下docker容器内,数据出现插入时间与当前时间不符。


原因分析:

首先,开发环境中,时间没问题,那么问题就是以下可能:

1》服务器时间设置问题:

正确的时间显示 有 CST,表明服务器时间设置是没问题的

2》数据库连接时区设置问题:

项目中配置的 serverTimezone=UTC,很明显 UTC时间与当前本地时间差8小时

解决方案:

修改 serverTimezone=UTC 为

serverTimezone=Asia/Shanghai

项目部署到docker环境下的,解决方案二种:

1、利用Dockerfile创建镜像时。在Dockerfile中加入

//Centos
ENV TIME_ZONE=Asia/Shanghai 
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone

//Ubuntu
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2、容器创建时。加入时区挂载选项:-v /etc/localtime:/etc/localtime

docker run -d -p 5002:80 -v /etc/localtime:/etc/localtime --name dotnetcontainer dotnetimage

 

转载自:https://blog.csdn.net/weixin_41634885/article/details/108791620

https://www.cnblogs.com/ZhengHengWU/p/12883627.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值