从ruby中将时间存储在postgresql中

时间:2016-01-21 20:03:14

标签: ruby-on-rails ruby postgresql grape-api

我正在尝试在postgresql中保存一些时间属性(小时:Mitues),我无法理解自从INSERT运行直到保存数据后会发生什么。

我可以在我的日志中看到“时间:\ n- \ n-2016-01-21 22:00:00.000000000 +01:00”,但在数据库中它变为“21:00:00”。

我认为它与+01:00偏移有关,但我试图在我的应用程序中设置配置时区并且没有任何改变......

我的应用是一个API,它会与其他许多人一起更新此属性。

create_table :things do |t|

  t.time :time

end

这里更新了:

collection.each do |resource|
  resource.update_attributes resource_params[resource.id.to_s].first
end

1 个答案:

答案 0 :(得分:1)

是的,你是对的。数据在数据库中保存的时区是UTC。您应该在application.rb中执行的配置是:

config.active_record.default_timezone = :local

如果您还没有明确说明您的时区:

config.time_zone = 'Madrid'