在application.rb中设置TImeZone时,未保存DateTime

时间:2013-06-23 07:52:40

标签: ruby-on-rails postgresql ruby-on-rails-4

我今天遇到了一个问题,让我有些困惑 每当我尝试将DateTime保存到数据库时,它似乎都有效 - 但是一旦我尝试再次检索它,我就会回来 nil
这不仅发生在我正在保存的记录上,还发生在 created_at updated_at 字段上。 通过删除

,我能够追踪它
    config.time_zone = "Bern"
    config.active_record.default_timezone = "Bern"

从我的application.rb - 它似乎再次完美无缺。

有什么方法可以解决这个问题,并且实际上将记录保存在我的(伯尔尼)时区吗?

1 个答案:

答案 0 :(得分:0)

我怀疑“Bern”不是Rails的有效时区标识符,而是导致问题的原因。

根据comments on this answer,您可以使用以下命令查看有效的时区ID:

rails c - ActiveSupport::TimeZone.all.map(&:name)

但是,我强烈建议不要在本地时区存储时间戳 - 以UTC格式存储它们,然后在适当的时候转换为用户的本地时区。除此之外,这避免了夏令时过渡的问题。