首页 > 解决方案 > NodeJs 时区与 Linux 时区不同

问题描述

我有一个安装了 npm 的 Linux 服务器(具体来说是 CentO)。服务器的时区是 UTC,我将其更改为伊朗 (+4:30)。

现在我的 linux 时区是伊朗(比如下午 7:00),而我的节点Date()返回 UTC(下午 4:30)。

如何完全更改 Node 的默认时区(而不是在正在运行的应用程序上)?我搜索了很多,我找到的每个答案都是针对节点应用程序,而不是一般的节点服务。我希望更改 Node 的时区,而不是应用程序。

:( 顺便说一句,我的 CentO 没有任何 GUI。欢迎以文本模式回答

标签: node.jslinuxdatetimecentostimezone

解决方案


我通过尝试不同的方法找到了解决方案。

首先我更改了 Centos 的时区,我在 pm2 上的应用程序仍然是 UTC 时区。

然后我使用更改了 TZ var cp /usr/share/zoneinfo/Asia/...,但仍然没有结果。

然后我重新启动了我的 CentOs 服务器,期望更改生效,但还没有结果。服务器启动后,pm2 重新加载了我的应用程序,它仍然使用 UTC 时区。

最后我从 pm2 中删除了我的应用程序,然后再次添加它。那是我的应用程序开始使用本地时区的时候。

所以请记住,无论您对“Linux TimeZone”或“TZ var”做什么,pm2 都会记住您添加应用程序时的时区,并将其保存在某处并将其用作应用程序的时区。


推荐阅读