我看到很多类似的问题,但他们都倾向于关注视图部分而不是数据库部分。假设您的客户需要将 created_at 字段保存在特定的本地时区,例如 EST。
默认情况下,rails 会将其保存在数据库中
2013 年 10 月 13 日星期日 20:35:47 +0000
我需要改变行为,以便它保存这个:
2013 年 10 月 13 日星期日 16:35:47 +0000
我看到很多类似的问题,但他们都倾向于关注视图部分而不是数据库部分。假设您的客户需要将 created_at 字段保存在特定的本地时区,例如 EST。
默认情况下,rails 会将其保存在数据库中
2013 年 10 月 13 日星期日 20:35:47 +0000
我需要改变行为,以便它保存这个:
2013 年 10 月 13 日星期日 16:35:47 +0000
您可以配置 ActiveRecord 将在config/application.rb
. 例如,您可以添加以下内容:
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)。Rails 的默认值为 :utc,尽管 Active Record 在 Rails 外部使用时默认为 :local。
config.time_zone
为应用程序设置默认时区并为 Active Record 启用时区感知。