我看到很多类似的问题,但它们都倾向于关注视图部分而不是数据库部分。假设您的客户需要将created_at字段保存在特定的本地时区,例如EST。
默认情况下,rails会将其保存在数据库中
Sun,2013年10月13日20:35:47 +0000
我需要更改行为,以便将其保存:
Sun,2013年10月13日16:35:47 +0000
答案 0 :(得分:3)
您可以在config/application.rb
中配置ActiveRecord将考虑的时区。例如,您可以添加以下内容:
config.time_zone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone
决定是否使用 Time.local(如果设置为:local)或Time.utc(如果设置为:utc)时 从数据库中提取日期和时间。默认值为:utc for Rails,虽然Active Record默认为:local在外面使用 轨。
config.time_zone
设置应用程序的默认时区 为Active Record启用时区感知。