首页 > 作文

docker容器时区错误问题

更新时间:2023-04-04 02:03:42 阅读: 评论:0

目录
背景 问题 问题分析及解决办法 新的问题 问题分析及解决办法

背景

利用node-schedule定时任务库写了一个自动定时发邮件的脚本,每天上午7点发送邮件,邮件中会获取当天日期

问题

收到邮和女生聊天找话题件的时间为下午三点,而不是上午7点,推测是时区设置问题

问题分析及解决办法

经过排查发现,node-schedule库不支持选择时区,所以默认按照全球标准时utc发送,我们通常传入的时间是中国上海时区时间cst,中间会相差八小时。
更换了定时任务库,采用node-schedule-tz定时任务库,支持选择cst时区,并采用corntab时间格式

let j = schedule.schedulejob('name',"0 7 * * *",'asia/shanghai', function () {  console.log("执行任务");  getalldataandndmail();});

新的问题

更改完时间后,出现了一个新的问题,邮件中获取的时间是昨天的时间,而不是今天的时间

问题分析及解决办法

想了一下,代码中总共有两个地方获取了时间,一个是定时任务库传入的发邮件的时间,一个是脚本里获取当前时间

let today = new date()

因为我有打印today的log,查看下日志

docker logs -f [containerid] # today:2021-11-12t23:00:00.106z

发现早上7点发送的邮件,today拿到的时间是前一天的23点,也是相差8小时
利用下面的命令,进入docker容器中查看时间

$ docker exe治疗性冷淡c -it [containerid] sh# 进入容器之后前面会变成## 输入date查看时间date  # s一天一万年歌词at nov 13 05:05:31 utc 2021

果然是utc全球标准时,说明发23456789的成语是什么送邮件时间确实改回来了,但是代码执行时获取的时间是此刻的全球标准时。
我们把本机的时间复制给容器的时间

docker cp /etc/localtime [containerid]:/etc/

再次按照上述查看容器内时间,发现已经改回来cst了,应描写风的优美段落该没有什么问题了

到此这篇关于docker容器时区错误问题的文章就介绍到这了,更多相关docker 时区错误内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 02:03:40,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/66dbd4f6d364f83ca70407856c1250d0.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:docker容器时区错误问题.doc

本文 PDF 下载地址:docker容器时区错误问题.pdf

标签:时间   时区   标准时   解决办法
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图