我正在使用node.js和mongodb创建一个应用程序,该应用程序在一天内按小时存储所有温度值。 温度值应根据传感器所在的时区显示在仪表板中。 我根据时间序列数据的建议创建了一个数据模型,但我不知道如何处理时区,因为mongodb以UTC格式存储日期,所以在我的数据模型中,对象“hours”每天每小时都有静态字段。 / p>
// Temperatures by hour in a day.
{
dateStart: ISODate("2016-08-06T00:00:00.000Z"), // This is the start of the day
timeZone: "Europe/Madrid", // We could store the time zone of the sensor.
hours: { // I'm not sure how to deal with these values. Should be UTC hours too?
0: 20
1: 21,
2: 24,
.
.
.
23: 16
}
}
问题是:我该如何处理时区?
在我当地时间开始一天(2016-08-06T00:00:00)将转换为UTC至2016-08-05T22:00:00.000 + 02:00。
第一种方法可能是:
在这种情况下,我们在星期日有UTC时间,但小时的对象不是UTC。这是'欧洲/马德里,我对此决定不太相信。
有关改进此设计的任何想法吗?
答案 0 :(得分:0)
您的设计应该有效,但是您的示例应该是
{
...
16: 25
...
}
小时是对dateStart的偏移方面。因此,在显示时,您应该将16个小时添加到开始日期,您可以在所需的时区中显示该日期。