奇怪的time_zone EDT与Rails的EST问题

时间:2017-10-27 19:11:24

标签: ruby-on-rails ruby ruby-on-rails-5

我有一台配置为"东部时间(美国和加拿大)"

的rails 5服务器

服务器运行良好,它以UTC格式存储在数据库中。

例如,如果我在控制台中并执行

 Time.zone.now
 => Fri, 27 Oct 2017 15:07:04 EDT -04:00 

哪个是正确的(我们还没有按时回落)

但是如果我拉下一个活动的记录对象:

> s = Schedule.first
  Schedule Load (6.2ms)  SELECT  "schedules".* FROM "schedules" ORDER BY "schedules"."id" ASC LIMIT $1  [["LIMIT", 1]]
 => #<Schedule id: 1, product_id: 1, day: "Monday", start_time: "2000-01-01 22:00:00", end_time: "2000-01-01 23:00:00", size: 25, description: "Grades 3-5", created_at: "2017-08-23 14:16:09", updated_at: "2017-08-23 14:16:09", is_full: false> 
2.4.0 :004 > s.start_time
 => Sat, 01 Jan 2000 17:00:00 EST -05:00 

正如您所看到的,它转换为复活节标准时间,这是不正确的。轨道是否可能混淆或者我做错了什么?

(使用ruby 2.4)

1 个答案:

答案 0 :(得分:0)

这是用户错误,对象日期在EST中,因此Active Record正在执行其工作,修复是将其设置为今天,它将位于正确的区域。