Ruby on rails 在活动记录查询期间,Time.use\u区域被忽略 旧金山时间12:33。

Ruby on rails 在活动记录查询期间,Time.use\u区域被忽略 旧金山时间12:33。,ruby-on-rails,activerecord,timezone,Ruby On Rails,Activerecord,Timezone,irbmain:027:0>Time.use_zonePacific Time美国和加拿大{puts Time.zone.now} 2017-10-19 12:33:06 -0700 Time.use_zone指定美国和加拿大时间{Event.wherestart_at>=?,Time.zone.now} 事件加载1.4ms选择事件。*从事件开始时间>='2017-10-19 19:33:22.532660' 从文档和文档判断,这似乎是正确的用法。我错过了什么 更新: 添加到AR查询中使用

irbmain:027:0>Time.use_zonePacific Time美国和加拿大{puts Time.zone.now} 2017-10-19 12:33:06 -0700

Time.use_zone指定美国和加拿大时间{Event.wherestart_at>=?,Time.zone.now} 事件加载1.4ms选择事件。*从事件开始时间>='2017-10-19 19:33:22.532660'

从文档和文档判断,这似乎是正确的用法。我错过了什么

更新:


添加到AR查询中使用了正确的时区。

关于此特定查询,您不应该太担心。SELECT查询将您的Time.zone.now转换为UTC,但指向数据库的所有其他内容也会转换为UTC


这是因为Rails将数据库中存储和查找的所有日期时间默认转换为UTC。当您的时间是12:33 pm时,是19:33 UTC。

如果您想在DB中存储本地时间,可以在应用程序配置中添加config.active\u record.default\u timezone=:local。