如何解决docker集装箱时区错误的问题,相信很多没有经验的人对此无能为力。因此,本文总结了问题产生的原因和解决方法,希望大家可以通过本文来解决这个问题。
00-1010使用节点计划定时任务库编写脚本,用于定期自动发送电子邮件。每天早上7点,邮件会显示当天的日期。
00-1010在下午3: 00而不是早上7: 00收到邮件,大概是因为时区设置的原因。
00-1010经过调查发现,节点-日程库不支持时区选择,所以UTC默认按照全球标准发送,我们通常传入的时间是中国上海时区的时间CST,相差8小时。
替换了计划任务库,采用了node-schedule-tz计划任务库,支持选择CST时区,采用了corntab时间格式。
letj=schedule . schedulejob(' name ',' 07*** ',' Asia/Shanghai ',function(){ 0 }
Console.log('执行任务');
getAllDataAndSendMail();
});00-1010,更改时间后,出现了新问题。邮件中获得的时间是昨天的时间,不是今天的时间。
00-1010想了一下,代码中有两个地方可以获取时间,一个是来自预定任务库中的传入邮件时间,另一个是获取脚本中的当前时间。
Lettoday=newDate()因为我已经打印了今天的日志,所以检查一下日志。
dockerlogs-f[containerID]
#今日:2021-11-12t 23:00336000.106 z发现邮件是早上7: 00发的,今天是前一天23: 00收到的,相隔8小时。
使用以下命令检查docker容器中的时间。
$ dockersec-it[containerID]sh
#进入集装箱后,正面会变成#
#输入日期查看时间
当日期# satno v 13053:053:31 UTC 2021真的是UTC全球标准时,意味着发送邮件的时间确实改回来了,但代码执行时获得的时间是当前的全球标准时间。
我们将本地时间复制到集装箱时间。
dockp/etc/local time[containerid]:/etc/根据上面再次检查容器中的时间,发现已经改回CST。应该没有问题。
看完以上,你掌握了如何解决docker集装箱时区错误的问题了吗?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道,感谢您的阅读!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/144752.html