【问题标题】:Make node.js use system timezone让 node.js 使用系统时区
【发布时间】:2019-12-11 17:57:01
【问题描述】:

我有一个带有“Debian GNU/Linux 8 (jessie)”和 node.js 8 的 Docker 容器。系统时区(/etc/timezone)是“欧洲/莫斯科”,但是当我运行 node 并输入

new Date();

我得到的是 UTC 日期,但不是莫斯科本地日期。

如何让node.js默认使用系统时区?

【问题讨论】:

  • @JoseCarlosRamosCarmenates 尝试了env TZ='Europe/Amsterdam node,但没有效果(但定义了process.env.TZ
  • 在命令行中执行:date,显示输出,看看系统时区是否正确。
  • @MarcosCasagrande 是的,它是正确的,输出是 Wed Dec 11 21:22:20 MSK 2019 其中 MSK 表示莫斯科

标签: node.js datetime timezone


【解决方案1】:

Node.js 正在使用您系统的时区,请使用以下检查:

new Date().toString()

当你这样做时:new Date(),你得到的输出是 UTC,这与你在 Chrome 控制台中得到的输出不同,其中new Date().toString()new Date() 给出了相同的字符串格式。但这并不意味着它没有使用您的系统时区。您正在获取当前时间,转换为 UTC

console.log(new Date())

确认设置特定日期:

console.log(new Date(2019,11,11,15,31,0).toString())
// Wed Dec 11 2019 15:31:00 {YOUR-TIMEZONE} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-30
    • 2011-12-05
    • 1970-01-01
    • 2010-09-26
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多