Sinatra 请教个 Sinatra ActiveRecord 时间时区问题

villins · June 14, 2016 · 7622 hits

sinatra 设置了 Time 的时区如下:

Time.zone = "Beijing"
ActiveRecord::Base.default_timezone = :local

然后获取 model 里面的时间字段

Show.last.show_time
2016-06-14 15:20:00 +0800

Show.last.show_time.utc
2016-06-14 07:20:00 UTC

这里用 active_record 获取展示的时间值是错误的 设置了北京时区,获取值不加 8 小时却设置成 CST,取 utc 值却在已是 utc 时间再减 8 小时

从 rails 获取出来的正确值如下

Show.last.show_time
Tue, 14 Jun 2016 23:20:00 CST +08:00

Show.last.show_time.utc

2016-06-14 15:20:00 UTC

创建时间居然也没有转换成 utc 时间入库,wtf 一样是 ActiveRecord::Base 的子类 在 sinatra 的 datetime 字段的 class 居然是 Time,而在 rails 的是 ActiveSupport::TimeWithZone < Object

villins closed this topic. 08 Feb 17:12
You need to Sign in before reply, if you don't have an account, please Sign up first.