0

我在获取正确的时间保存在我的数据库中时遇到了问题。如果我在 postgres 中执行 SELECT NOW(),我将在 EDT 中获得正确的时间。当我在 ruby​​ 控制台中执行 Time.now 时,我也得到了正确的时间。我什至可以将我从 Time.now 获得的内容手动复制/粘贴并通过 psql 将其保存到数据库中,这将是正确的。问题是当我尝试在代码中节省时间时,时间会提前 3 或 4 小时。

如果有人需要确切了解我从 Time.now 或 SELECT NOW() 得到的信息,请告诉我,我会在回家后发布。

我确定我忽略了一些小东西,但我无法弄清楚!我猜这对于使用 postgres 设置 Ruby on Rails 的人来说可能是一个常见问题。谢谢您的帮助。

4

1 回答 1

1

默认情况下,Rails 3 将所有时间保存在 GMT+00:00 时区的相对数据库中。因此,您必须在计算时间时根据您的时区设置偏移量。否则,您可以通过添加以下内容来更改默认 Activerecord 时区application.rb

 config.time_zone = 'Your time zone' (Example: 'Eastern Time (US & Canada)')
 config.active_record.default_timezone = 'Your time zone' (Example: 'Eastern Time (US & Canada)')
于 2012-03-15T19:14:59.070 回答