我居住的国家每年会两次更改时间。也就是说,一年中有一个时期,与协调世界时(UTC)的偏差为-3小时(-180分钟),而另一个时期则偏差为-4小时(-240分钟)。
图示如下:
我的问题是:
“时区”只是表示偏移量的数字吗?也就是说,我的国家有两个时区吗?还是时区包括这些信息?
图示如下:
|------- (offset = -3) -------|------- (offset is -4) -------|
start of year mid end of year
我的问题是:
“时区”只是表示偏移量的数字吗?也就是说,我的国家有两个时区吗?还是时区包括这些信息?
这很重要,因为我在数据库中保存每个日期的UTC时区(偏移量= 0)。
相反,我应该使用本地时区保存日期并保存它们的偏移量(在保存时)吗?
以下是我通过使用UTC时区保存日期所看到的问题的示例:
假设我有一个系统,人们可以发送消息。
我想要拥有一个统计部分,其中我绘制“按小时发送的消息数”(即:“正常日中按小时发送的消息数”)
假设整个数据库中只有两条消息:
- 消息1,在3月1日UTC时间下午5点发送(当地时间下午2点)
- 消息2,在8月1日UTC时间下午5点发送(当地时间下午1点)
那么,如果我在8月2日创建图表,并将这些UTC日期转换为本地日期,则会给我提供“有2条消息在下午1点发送”的错误信息!