2

Time オブジェクトを PST タイムゾーンに変換しようとしています。

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) で GMT ではなく UTC を返します。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 に答える