【发布时间】:2019-11-25 18:30:20
【问题描述】:
考虑代码:
let now = moment();
console.log(now.format()); // 2019-11-25T20:23:50+02:00
console.log(now.toDate()); // 2019-11-25T18:23:50.916Z
这是我本地机器上的输出,当我在 Heroku 上检查应用程序时 它给出了相同的值,即使我像这样更改了 TZ:
heroku 配置:添加 TZ="Asia/Jerusalem"
如何获取我的 localtime 的 JavaScript Date (Not a String !) 对象,意思是 2019-11-25T20:23:50 ?
【问题讨论】:
-
日期对象没有时区,它们是 UTC。产生本地值的方法(toString、getHours、getMinutes 等)使用系统时区偏移和设置。
-
第一个字符串是UTC+2,即当前的耶路撒冷偏移量。第二个字符串是 UTC+0(或纯 UTC)。它们都显示相同的瞬间,只是具有不同的偏移量,因为控制台对每个对象使用不同的 toString 方法。 2019-11-25T20:23:50 没有偏移量,因此它将被视为本地,并代表具有不同本地偏移量的每个地方的不同时刻。
标签: javascript node.js date heroku momentjs