0

我今天遇到一个问题,这让我有点困惑。
每当我尝试将 DateTime 保存到数据库时,它似乎都可以工作-但是一旦我尝试再次检索它,我就会返回nil
这不仅发生在我保存的记录上,还发生在created_atupdated_at字段上。我能够通过删除

    config.time_zone = "Bern"
    config.active_record.default_timezone = "Bern"

从我的 application.rb - 它似乎再次完美地工作。

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

4

1 回答 1

0

我怀疑“伯尔尼”不是 Rails 的有效时区标识符,这就是导致问题的原因。

根据对此答案的评论,您可以使用以下命令查看有效的时区 ID:

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

但是,我强烈建议不要将时间戳存储在您的本地时区 - 将它们存储在 UTC 中,然后在适当的情况下转换为用户的本地时区。除此之外,这避免了围绕夏令时转换的问题。

于 2013-06-23T07:58:07.273 回答