【问题标题】:Should Timezones be stored as a string or an integer offset?时区应该存储为字符串还是整数偏移量?
【发布时间】:2013-01-09 06:24:24
【问题描述】:

为了在 Rails 应用程序的数据库中存储用户的时区,存储数字偏移量(即 -8)还是名称(太平洋时间(美国和加拿大))更好?

存储名称可以让应用程序更好地处理 DST,但如果将来 Rails 更新并且时区名称不同怎么办?

【问题讨论】:

    标签: ruby-on-rails-3 timezone


    【解决方案1】:

    您应该使用时区名称。不要担心时区名称会改变。他们不会改变。您维护timezone database 的人似乎有一个坚定的承诺,如果他们这样做的话,他们会保留向后兼容的名称。例如,像America/New_York 这样的新名称被添加,但像US/Eastern 这样的“旧”名称仍然有效。此外,时区定义支持不同时间规则不同的时区,因此即使一个时区的规则更新,过去日期的本地时间也应保持不变(除非更改规则以更正定义)。

    存储数字偏移量与存储特定时间戳结合使用是合适的,因为它允许与 UTC 进行简单而明确的转换,并且在同一时区的不同日期的偏移量值是无关紧要的。

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 2016-10-30
      • 1970-01-01
      • 2017-10-16
      相关资源
      最近更新 更多