我正在运行Windows 10 Professional,我的时区和区域设置设置为布里斯班/澳大利亚(UTC 10:00)。此外,我在系统上运行node.js以供我构建的应用程序。
我在node.js中运行以下内容:
var x = new Date();
console.log(x);
它返回以下内容:
2017-09-07T23:42:33.719Z
请注意DateTime字符串末尾的Z?这代表祖鲁时间。(UTC 0)
i认为,当未指定时区时,默认情况下是在node.js中设置的。如何在Node.js上全局指定时区,以确保所有日期都正确返回?
您可以将TZ Env设置为时区字符串。
例如:
$ export TZ=Europe/Amsterdam
$ node
> Date()
'Fri Sep 08 2017 03:02:57 GMT+0200 (CEST)'
$ export TZ=America/Anchorage
$ node
> Date()
'Thu Sep 07 2017 17:04:46 GMT-0800 (AKDT)'
您还可以在运行时设置process.env.TZ
:
> process.env.TZ = 'Antarctica/Mawson'
> Date()
'Thu Sep 07 2017 17:11:00 GMT-0800 (+05)'
注意,无论时间区域如何,new Date()
都会返回UTC 2017-09-08T01:05:58.103Z
。