我有一台配置为"东部时间(美国和加拿大)"
的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)
答案 0 :(得分:0)
这是用户错误,对象日期在EST中,因此Active Record正在执行其工作,修复是将其设置为今天,它将位于正确的区域。