如何在node.js中设置默认时区?

如何在node.js中设置默认时区?

番长樱梅2020/04/07 11:33:06

您可以使用库tzdata配置全局时区:

npm install tzdata -y

用变量设置环境后,例如:TZ = America / Bogota

并在您的项目中进行测试:

new Date()

希望对您有帮助

十三2020/04/07 11:33:06

我使用这个npm软件包unix-system-timezone

猴子2020/04/07 11:33:06

您可以选择时区它可以让您设置位置,还可以节省夏令时。

Gil伽罗小宇宙2020/04/07 11:33:06

对于那些将Node.js应用程序部署到Amazon AWS Elastic Beanstalk的人来说,这是一个答案我在其他任何地方都没有看到此文档:

在下Configuration -> Software -> Environment Properties,只需设置键值对TZ和您的时区,例如America/Los Angeles,然后应用更改。

您可以通过new Date().toString()在Node应用程序中输出并注意时区后缀来验证效果

2020/04/07 11:33:06

我知道这个线程很旧,但是我认为这会对像我这样从Google登陆到这里的人有所帮助。

在GAE Flex(NodeJs)中,您可以在app.yaml文件中设置环境变量TZ(管理应用程序中所有日期时区的变量),在此我给您一个示例:

app.yaml

# [START env]
env_variables:
  # Timezone
  TZ: America/Argentina/Buenos_Aires
LGil2020/04/07 11:33:06

设置服务器时区并使用NTP同步。这是更改服务器时间的一种更好的解决方案。

列出时区

timedatectl list-timezones

设定时区

sudo timedatectl set-timezone America/New_York

验证时区

timedatectl

我更喜欢对服务器和数据库使用UTC时区。任何转换都必须在客户端上进行。我们可以在客户端使用moment.js。

同样,维护许多实例也很容易,

老丝阿飞2020/04/07 11:33:06

不幸的是,设置process.env.TZ并不能很好地起作用 -基本上,更改生效的时间不确定。

因此,在启动节点之前设置系统的时区是您唯一的正确选择。

但是,如果您不能这样做,则可以使用节点时间作为一种解决方法:以本地时间或UTC时间获取时间,然后将其转换为所需的时区。请参阅如何在Nodejs中使用时区偏移量?有关详细信息。