1

我看到很多类似的问题,但他们都倾向于关注视图部分而不是数据库部分。假设您的客户需要将 created_at 字段保存在特定的本地时区,例如 EST。

默认情况下,rails 会将其保存在数据库中

2013 年 10 月 13 日星期日 20:35:47 +0000

我需要改变行为,以便它保存这个:

2013 年 10 月 13 日星期日 16:35:47 +0000

4

1 回答 1

3

您可以配置 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 启用时区感知。

于 2013-10-13T21:06:33.690 回答