我需要将世界不同地区的夏令时(夏令时)转换规则存储在数据库中。我已经有了一种存储区域和子区域的方法(因此整个“澳大利亚的一半”/亚利桑那/纳瓦霍问题都得到了解决),但我想知道实现这一目标的最有效模式是什么。我看到的两个选项:
- 有一个表格,其中包含每年和地区的唯一一行,给出夏季时间的开始和结束时间以及特定的偏移量
- 有一个表格,其中存储每个地区的公式和有效日期范围(以色列等地区所需的有效范围)
第一个的优点是灵活性,因为实际上一切皆有可能。不幸的是,它还需要 (a) 更多空间,并且相应地 (b) 需要大量工作来获取数据输入。第二个很好,因为一行可以对应一个区域几十年,但它也需要应用层中的某种语言解析器和解释器。由于这个数据库将被几个用没有强大文本处理能力的语言编写的不同应用程序使用,我宁愿避免这条路线。
我很想只使用 zoneinfo 或类似的东西,但不幸的是,在这种情况下这不是一个选项。同样,我无法标准化数据库中必须存在的日期、时区和夏令时信息以满足某些用例。
有没有人有做类似事情的经验?同样,有没有人有任何我可能错过的绝妙选择?