首页 > 解决方案 > Javascript Date.getTimezoneOffset() 在 Node-red 中不起作用

问题描述

我在带有 Raspbian Stretch 的 Raspberry Pi 3B 上运行 Node-red。
此输出确认实际设置了 CET 时区:

pi@raspberrypi:~ $ timedatectl
      Local time: Tue 2019-12-10 22:29:51 CET
  Universal time: Tue 2019-12-10 21:29:51 UTC
        RTC time: n/a
       Time zone: Europe/Berlin (CET, +0100)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

我正在尝试计算当前时区 (CET) 和 GMT 时间之间的时区偏移量。
为此,我在 node-red 的函数节点中使用了以下行:

msg.payload = new Date().getTimezoneOffset();

但它不是一小时(60 分钟)的预期偏移量,而是返回 0。

标签: javascriptraspberry-pitimezonenode-redtimezone-offset

解决方案


根据thisthis,需要在settings.js文件(位于$home/.node-red)中为 Node-Red 显式设置时区:

process.env.TZ = "Europe/Berlin";

推荐阅读