2012-03-15 44 views
0

我一直有一个问题得到正确的时间保存在我的数据库中。如果我在postgres中执行SELECT NOW(),我将在EDT获得正确的时间。当我在红宝石控制台做了Time.now时,我也获得了正确的时间。我甚至可以把我从Time.now中得到的内容手动复制/粘贴并通过psql保存到数据库中,这是正确的。问题是,当我尝试在代码中节省时间时,时间会跳到3或4小时。在Ruby on Rails中将时间节省到Postgres数据库

如果有人需要确切地知道我从Time.now或SELECT NOW()获得的内容,请告诉我,我会在我回家后发布它。

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

+0

您什么时候尝试捕获? – swasheck 2012-03-15 17:31:15

+0

Time.zone.now给你带来了什么? – Robin 2012-03-15 17:32:00

+0

Thu,15 Mar 2012 22:34:30 UTC +00:00我想那是我的问题 – 2012-03-15 22:35:19

回答

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)') 
相关问题