我正在尝试使用PST时区转换Time对象。
zone = ActiveSupport::TimeZone.new("Pacific Time (US & Canada)")
now = Time.now.in_time_zone(zone)
当我输出现在时,它是正确的。当我 Time.now.in_time_zone(zone).to_s(:db)时,它会输出GMT(原始日期)。
我该如何解决?
更新:看起来像以下代码
zone = ActiveSupport::TimeZone.new("Pacific Time (US & Canada)")
now = Time.now.in_time_zone(zone).strftime("%Y-%m-%d %H:%M:%S")
答案 0 :(得分:1)
数据库日期通常以utc时间格式存储..
ActiveSupport在to_s(:db)上返回UTC,而不是GMT, 见http://apidock.com/rails/ActiveSupport/TimeWithZone/to_s
编辑:也许这对你有帮助吗? http://chris.finne.us/2011/09/23/rails-3-tosdb-when-database-time-is-not-utc/