【发布时间】:2016-11-05 20:02:59
【问题描述】:
我的 Rails 应用托管在 Heroku 上,带有 Postgress 数据库。对于某个模型,我要求用户选择日期和时间,然后在保存模型之前将它们组合为日期:
def create_timestamp
self.date = day.to_datetime + time.seconds_since_midnight.seconds
end
当我选择今天@20:50:00 并将其存储在数据库中时,我的记录如下所示:
<Report id: 1, account_id: 1, date: "2016-11-05 20:50:00", description: "test", created_at: "2016-11-05 19:50:57", updated_at: "2016-11-05 19:50:57", deleted_at: nil, user_id: 1, report_category_id: 2, time: "2000-01-01 20:50:00", day: "2016-11-05">
您可能会注意到,created_at 日期不同,因为它位于不同的时区。虽然 created_at 存储在 UTC +0000 中,但我使用本地时区的自定义日期是 CET +0100。
所以当我在控制台输入:Report.find(1).date 时,它会返回 2016-11-05 21:50:00 +0100。
如何在初始集合中存储正确的日期,或者让数据库在查询时返回正确的时区?
谢谢
【问题讨论】:
标签: ruby-on-rails heroku