ThingsBoard 如何获取避免跨时区的时间
正文与配图来自原稿。日报、日电量等按「自然日」切分时,应用 UTC(或统一业务时区)算零点,避免 JVM 默认时区漂移。
1、获取当天零点时间戳(UTC)
在脚本节点 / 部件 JS 中:
js
// 获取当前 UTC 日期和时间
let now = new Date();
// 设置时间为当天零点 UTC:时、分、秒、毫秒
now.setUTCHours(0, 0, 0, 0);
// 零点时间戳(毫秒)
let timestampOfMidnight = now.getTime();
console.log(timestampOfMidnight);
2、使用注意
- 遥测
ts本身多为 epoch 毫秒;展示层再按用户时区格式化。 - 统计「业务日」若以东八区为准,应对齐
Asia/Shanghai的零点,而不是混用setHours(本地)与setUTCHours。 - 与 电表日电量统计 配合时,日界统一用同一套零点算法。
3、小结
跨时区场景优先 setUTCHours(0,0,0,0) 得到稳定日界时间戳,再用于查询区间与写入日汇总点。
