2016-12-05 7 views
1

私は、in_time_zoneヘルパーで作業しようとしているRails 4を使用していて、奇妙な動作を理解できません。 Rails 4 - in_time_zone予期せぬ動作

はlocalhostにUTCに私のタイムスタンプを変換する(またはコンソールから)、すべてが期待どおりに動作:

"2016-12-05 10:00 pm".to_time.in_time_zone("UTC) 
=> 2016-12-06 05:00:00 UTC# this is the correct utc time 

しかし、私の生産現場で、それは間違った時間を返します。

"2016-12-05 10:00 pm".to_time.in_time_zone("UTC) 
=> 2016-12-05 22:00:00 UTC# this is incorrect 

どうすればよいか分かりません。UTCはUTCに関係なくあります。なぜこれが起こっているか理解するのに役立つ素晴らしいものです。

答えて

4

あなたがにだけではなく、からを変換しているものの時間帯のソフトウェアに伝える必要があります。あなたがしないので、それはシステム時間からUTCに変換する必要があると仮定します。それが発生すると、本番サーバーのシステムクロックはで、すでにのUTCになっているので、時間はまったく変更されません。あなたはUTC-7にあるように見えるので

、私はあなたが米国の西海岸にしている推測しているので、あなたは、このようなコードを使用する可能性があります:

ActiveSupport::TimeZone['America/Los_Angeles'].parse("2016-12-05 10:00 pm").utc 
関連する問題