【发布时间】:2011-10-24 02:14:49
【问题描述】:
这是我目前的情况:
我有一个具有属性时区的用户类。
当用户使用 start_time (3pm) 和 end_time (5pm) 创建 Lecture 时,我想确保数据库中的 start_time 和 end_time 实际上是用户所在时区的下午 3 点和下午 5 点。
在我的应用程序控制器中,我正在执行以下操作:
def set_timezone
if current_user
Time.zone = current_user.time_zone or "Eastern Time (US & Canada)"
end
end
当上述讲座被保存到数据库时,它似乎增加了 4 个小时。是否将其转换回UTC?奇怪的是,当我在视图中显示时间时它是正确的(我猜它是从 UTC 时间转换回 EST 时间)。
我希望这样,如果用户选择下午 4 点,它将作为下午 4 点保存在数据库中,并且当我在视图中显示该时间时,它是下午 4 点。我目前做错了什么?
编辑:在将它们存储在数据库中时,rails 似乎也将所有时间转换为 UTC。在我进行涉及时间的查询之前,这没问题(我必须手动将其转换为 UTC)。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3