我今天遇到了一个问题,让我有些困惑
每当我尝试将DateTime保存到数据库时,它似乎都有效 - 但是一旦我尝试再次检索它,我就会回来 nil 。
这不仅发生在我正在保存的记录上,还发生在 created_at 和 updated_at 字段上。
通过删除
config.time_zone = "Bern"
config.active_record.default_timezone = "Bern"
从我的application.rb - 它似乎再次完美无缺。
有什么方法可以解决这个问题,并且实际上将记录保存在我的(伯尔尼)时区吗?
答案 0 :(得分:0)
我怀疑“Bern”不是Rails的有效时区标识符,而是导致问题的原因。
根据comments on this answer,您可以使用以下命令查看有效的时区ID:
rails c - ActiveSupport::TimeZone.all.map(&:name)
但是,我强烈建议不要在本地时区存储时间戳 - 以UTC格式存储它们,然后在适当的时候转换为用户的本地时区。除此之外,这避免了夏令时过渡的问题。