如何更改created_at字段的RAILS默认时间戳格式(存储在DB中)?

时间:2013-10-13 20:42:19

标签: ruby-on-rails ruby time

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

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

  

Sun,2013年10月13日20:35:47 +0000

我需要更改行为,以便将其保存:

  

Sun,2013年10月13日16:35:47 +0000

1 个答案:

答案 0 :(得分:3)

您可以在config/application.rb中配置ActiveRecord将考虑的时区。例如,您可以添加以下内容:

config.time_zone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone = 'Eastern Time (US & Canada)'

来自official guides

  
      
  • config.active_record.default_timezone决定是否使用   Time.local(如果设置为:local)或Time.utc(如果设置为:utc)时   从数据库中提取日期和时间。默认值为:utc for   Rails,虽然Active Record默认为:local在外面使用   轨。

  •   
  • config.time_zone设置应用程序的默认时区   为Active Record启用时区感知。

  •