created_at和updated_at保存为明天

时间:2015-05-05 01:20:29

标签: ruby-on-rails postgresql activerecord timezone

在我们的Rails应用程序中创建对象时,它会在我们的时间(PDT)之前7小时保存在Postgres DB中。看起来它将所有内容保存到UTC。这真的搞砸了分析图,等等。

我在 application.rb

中设置了这些设置
config.time_zone = 'Pacific Time (US & Canada)'
config.active_record.default_timezone = :local

如何将所有内容保存/时间戳到PDT时区?

1 个答案:

答案 0 :(得分:3)

它(可能)保存在服务器的时区,并且与您的代码无关。 IE,它是你的数据库设置created_at / updated_at日期时间(默认为UTC)

您需要做的是让您的分析与UTC一起工作并转换为PDT,而不是相反。这为您提供了一个完全独立于托管位置,夏令时变化,用户所在位置等的解决方案。

考虑如果您有多个时区的用户的简单情况。美国东部时间的某个人会恨你西海岸的PDT人,因为他们总是要翻译它;)

总而言之,使用和使用UTC - 它......通用!