2

我正在尝试使用 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")
4

1 回答 1

2

数据库日期通常以 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/

于 2013-06-26T21:25:30.783 回答