Node.js在哪里获得它的时区以及如何在全局范围内设置它?

时间:2017-09-08 00:50:29

标签: javascript node.js datetime object timezone

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

我在Node.js中运行了以下内容:

  var x = new Date();
  console.log(x);

它返回了以下内容:

  

2017-09-07T23:42:33.719Z

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

我认为当没有指定时区时,默认情况下会在Node.js中设置它。如何在Node.js中全局指定时区,以确保正确返回所有日期对象?

1 个答案:

答案 0 :(得分: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)'

您还可以在运行时设置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