我运行的是 Windows 10 专业版,我的时区和区域设置为布里斯类/澳大利亚 (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 中全局指定时区以确保正确返回所有日期对象?
最佳答案
您可以将 TZ 环境设置为时区字符串。
例如:
$ 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
。
关于javascript - Node.js 在哪里获得它的时区以及如何全局设置它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46107050/