首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置节点进程的时区?

如何设置节点进程的时区?
EN

Stack Overflow用户
提问于 2020-03-30 08:00:40
回答 1查看 653关注 0票数 3

我使用的是12.14.1,在我看来,节点忽略TZ env。变量在许多情况下:

代码语言:javascript
复制
$ TZ=GMT-4 node -e 'console.log(new Date().getTimezoneOffset(), new Date().toString())'
-120 Mon Mar 30 2020 10:10:12 GMT+0200 (Central European Summer Time)

这完全是错误的。无论是在GMT+4中(是的,+,怪异的POSIX ),还是返回的时间都不能与我的本地时间相匹配(在时区GMT+2和GMT+4中相同的时间是胡说八道)。

当转换到同一个时区打印时,来自不同时区的时间应该不同:

代码语言:javascript
复制
$ TZ=GMT-2 node -e 'console.log(new Date().getTimezoneOffset(), new Date().toString())'
-120 Mon Mar 30 2020 10:10:14 GMT+0200 (Central European Summer Time)

但Node坚持认为它是一样的。

如何可靠地跨平台(Linux、Windows、Mac)设置节点进程的任意时区(不只是UTC和等效时区)?

编辑:

以下是一个正确选项的示例,即它的行为方式:

代码语言:javascript
复制
$ TZ=GMT-4 date
Po 30. března 2020, 12:06:04 GMT
$ TZ=GMT-2 date
Po 30. března 2020, 10:06:09 GMT

当转换到同一时区时,来自不同时区的时间必须不同(GMT+4和GMT+2相差2小时)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-30 12:58:29

TZ=GMT后面跟着+/-,从版本10开始,数字就不再起作用了。例如,对于GMT+4,可以使用TZ=Europe/Samara代替。在寻找合适的时区时,要小心选择没有夏令时(DST)的时区。

测试主要节点版本6-13的new Date().getTimezoneOffset(), new Date().toString()打印:

代码语言:javascript
复制
current date         : Po 30. března 2020, 14:32:31 CEST
with TZ=GMT-4        : Po 30. března 2020, 16:32:31 GMT
with TZ=UTC          : Po 30. března 2020, 12:32:31 UTC
with TZ=GET          : Po 30. března 2020, 16:32:31 +04
with TZ=Europe/Samara: Po 30. března 2020, 12:32:31 GET

v6.17.1
with TZ=GMT-4        : -240 'Mon Mar 30 2020 16:32:31 GMT+0400 (GMT)'
with TZ=UTC          : 0 'Mon Mar 30 2020 12:32:31 GMT+0000 (UTC)'
with TZ=GET          : 0 'Mon Mar 30 2020 12:32:31 GMT+0000 (GET)'
with TZ=Europe/Samara: -240 'Mon Mar 30 2020 16:32:31 GMT+0400 (+04)'

v7.10.1
with TZ=GMT-4        : -240 'Mon Mar 30 2020 16:32:32 GMT+0400 (GMT)'
with TZ=UTC          : 0 'Mon Mar 30 2020 12:32:32 GMT+0000 (UTC)'
with TZ=GET          : 0 'Mon Mar 30 2020 12:32:32 GMT+0000 (GET)'
with TZ=Europe/Samara: -240 'Mon Mar 30 2020 16:32:32 GMT+0400 (+04)'

v8.17.0
with TZ=GMT-4        : -240 'Mon Mar 30 2020 16:32:32 GMT+0400 (GMT)'
with TZ=UTC          : 0 'Mon Mar 30 2020 12:32:33 GMT+0000 (UTC)'
with TZ=GET          : 0 'Mon Mar 30 2020 12:32:33 GMT+0000 (GET)'
with TZ=Europe/Samara: -240 'Mon Mar 30 2020 16:32:33 GMT+0400 (+04)'

v9.11.2
with TZ=GMT-4        : -240 'Mon Mar 30 2020 16:32:33 GMT+0400 (GMT)'
with TZ=UTC          : 0 'Mon Mar 30 2020 12:32:33 GMT+0000 (UTC)'
with TZ=GET          : 0 'Mon Mar 30 2020 12:32:33 GMT+0000 (GET)'
with TZ=Europe/Samara: -240 'Mon Mar 30 2020 16:32:33 GMT+0400 (+04)'

v10.19.0
with TZ=GMT-4        : -120 'Mon Mar 30 2020 14:32:34 GMT+0200 (Central European Summer Time)'
with TZ=UTC          : 0 'Mon Mar 30 2020 12:32:34 GMT+0000 (Coordinated Universal Time)'
with TZ=GET          : 0 'Mon Mar 30 2020 12:32:34 GMT+0000 (GMT)'
with TZ=Europe/Samara: -240 'Mon Mar 30 2020 16:32:34 GMT+0400 (Samara Standard Time)'

v11.15.0
with TZ=GMT-4        : -120 'Mon Mar 30 2020 14:32:35 GMT+0200 (Central European Summer Time)'
with TZ=UTC          : 0 'Mon Mar 30 2020 12:32:35 GMT+0000 (Coordinated Universal Time)'
with TZ=GET          : 0 'Mon Mar 30 2020 12:32:35 GMT+0000 (GMT)'
with TZ=Europe/Samara: -240 'Mon Mar 30 2020 16:32:35 GMT+0400 (Samara Standard Time)'

v12.16.1
with TZ=GMT-4        : -120 Mon Mar 30 2020 14:32:35 GMT+0200 (Central European Summer Time)
with TZ=UTC          : 0 Mon Mar 30 2020 12:32:35 GMT+0000 (Coordinated Universal Time)
with TZ=GET          : 0 Mon Mar 30 2020 12:32:35 GMT+0000 (GMT)
with TZ=Europe/Samara: -240 Mon Mar 30 2020 16:32:35 GMT+0400 (Samara Standard Time)

v13.12.0
with TZ=GMT-4        : -120 Mon Mar 30 2020 14:32:36 GMT+0200 (Central European Summer Time)
with TZ=UTC          : 0 Mon Mar 30 2020 12:32:36 GMT+0000 (Coordinated Universal Time)
with TZ=GET          : 0 Mon Mar 30 2020 12:32:36 GMT+0000 (GMT)
with TZ=Europe/Samara: -240 Mon Mar 30 2020 16:32:36 GMT+0400 (Samara Standard Time)

有关详细信息,请参阅票证:https://github.com/nodejs/node/issues/32564

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60926255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档