在 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