Node.js在哪里获得时区,如何在全局设置它?

cle*_*aul 4 javascript timezone datetime object node.js

我正在运行Windows 10专业版,并且我的时区和区域设置设置为布里斯班/澳大利亚(UTC + 10:00)。此外,我正在为要构建的应用程序在系统上运行Node.js。

我在Node.js中运行以下命令:

  var x = new Date();
  console.log(x);
Run Code Online (Sandbox Code Playgroud)

它返回以下内容:

2017-09-07T23:42:33.719Z

注意datetime字符串末尾的Z吗?这代表祖鲁时间。(UTC + 0)

我假设没有指定时区时,这是在Node.js中默认设置的。如何在Node.js中全局指定时区,以确保正确返回所有日期对象?

Mar*_*yer 5

您可以将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)'
Run Code Online (Sandbox Code Playgroud)

您还可以process.env.TZ在运行时设置:

> process.env.TZ = 'Antarctica/Mawson'

> Date()
'Thu Sep 07 2017 17:11:00 GMT-0800 (+05)'
Run Code Online (Sandbox Code Playgroud)

请注意,无论时区如何,以这种方式调用时都new Date()将返回UTC 2017-09-08T01:05:58.103Z

  • 这仅适用于* nix / OSX系统。在Windows上不起作用。OP表示他们正在Windows 10上运行。 (2认同)