2011-08-24 75 views
0

我住在时区GMT + 5.30。我的rails应用程序在保存updated_at和created_at的值时总是保存GMT时间。我如何默认我的rails应用程序以GMT + 5.30时间输入时间?设置本地时间在轨道上

回答

3

我花了一段时间才能赶上这一个了......

在environement.rb文件中,是:

config.time_zone = "something" 

它改变到:

config.time_zone = "Eastern Time (US & Canada)" 

例如,时间显示在y中我们的意见将自动转换。

默认情况下,Rails只是像这样存储时间。它是您将时间转换为良好时区的语言环境。

+0

它实际上在application.rb文件中。 – Rahul

+0

你是可能的。对,我检查了我的旧项目是rails 2.3.2。他们可能。在application.rb中移动它。感谢更新 – Cygnusx1

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 

你也许可以清理一下有一个辅助方法。

0

看起来你会得到你的答案在这里为您提供的应用程序是on Rails的3