我住在时区GMT + 5.30。保存updated_at和created_at的值时,我的rails应用程序始终保存GMT时间。如何将我的rails应用程序默认输入GMT + 5.30时间?
答案 0 :(得分:3)
我花了一段时间才抓住这个......
在你的environement.rb文件中,有一个:config.time_zone = "something"
将其更改为:
config.time_zone = "Eastern Time (US & Canada)"
例如,,视图中显示的时间将自动转换。
Rails默认只存储这样的时间。是你的区域设置将时间转换为好的时区。
答案 1 :(得分:2)
您应始终在数据库中以UTC格式存储时间,以使其不受地理位置限制。然后,您可以在用户的本地时间中显示时间,或者根据需要显示系统默认值。这样做会修改application_controller.rb中的以下内容:例如:
class ApplicationController < ActionController::Base
before_filter :set_user_time_zone
protected
def set_user_time_zone
Time.zone = 'New Delhi'
end
end
您可以在当地时间渲染所有这些时间:
Time.now.localtime.in_time_zone(Time.zone)
# => Thu, 25 Aug 2011 01:23:43 IST +05:30
您可以使用辅助方法清理它。
答案 2 :(得分:0)
看起来你会得到你的答案,只要你的应用程序在Rails 3上。