在rails中设置本地时间

时间:2011-08-24 19:32:19

标签: ruby-on-rails

我住在时区GMT + 5.30。保存updated_at和created_at的值时,我的rails应用程序始终保存GMT时间。如何将我的rails应用程序默认输入GMT + 5.30时间?

3 个答案:

答案 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上。