日期在Rails中选择时区问题

时间:2012-09-07 18:28:47

标签: ruby-on-rails-3 datetime timezone

我正在尝试在用户的时区中使用datetime_select助手,但我遇到了一些问题。设置如下:

在控制器中我设置了日期:

   Time.zone = "Pacific Time (US & Canada)"

然后在视图中我有以下内容:

    <%= datetime_select :custom_daily_message, :date, :default => Time.now.in_time_zone %>

当我在浏览器中看到视图时,在时区中正确选择了日期。让我们说以下内容:

     Fri, 07 Sep 2012 11:20:00 PDT -07:00 

但是,当我提交表单并在模型中检查日期时,它显示以下内容:

     Fri, 07 Sep 2012 11:20:00 UTC +00:00

我原以为日期是UTC,但PST的偏移量是合适的。有谁知道为什么会这样?是否有解决此问题的方法?

2 个答案:

答案 0 :(得分:0)

你能尝试这样做吗?

/config /application.rb设置您想要的时区,对于我的应用,我就是这样做的。

config.time_zone = 'Mountain Time (US & Canada)'

如果你有任何问题,请告诉我们。

答案 1 :(得分:0)

我为中央时间(在我的模型中)做了类似的事情:

def start_date
  super.in_time_zone("Central Time (US & Canada)") if super
end

def end_date
  super.in_time_zone("Central Time (US & Canada)") if super
end

但我还需要一个before_save来正确设置保存对象的时间。

修改: 毕竟,只要在我的application.rb文件中正确设置了time_zone,我就不需要before_save。