2016-05-23 4 views
0

私のサーバーの時計はロンドン時間に設定されています(現在GMT + 0ゾーンに住んでいます)。局所的には、それが正しい動作しますRailsは夏時間を適用していません

config.time_zone = 'London' 

Time.now.dst? 
# true 
Time.now.hour 
# 8 

Local time: Mon 2016-05-23 08:13:06 BST Universal time: Mon 2016-05-23 07:13:06 UTC 
    RTC time: Mon 2016-05-23 07:13:06 
    Timezone: Europe/London (BST, +0100) 
NTP enabled: yes NTP synchronized: no RTC in local TZ: no 
    DST active: yes Last DST change: DST began at 
       Sun 2016-03-27 00:59:59 GMT 
       Sun 2016-03-27 02:00:00 BST Next DST change: DST ends (the clock jumps one hour backwards) at 
       Sun 2016-10-30 01:59:59 BST 
       Sun 2016-10-30 01:00:00 GMT 

そして、私はタイムゾーンを設定し、私のapplication.rbファイルに:timedatectl statusの出力は私にこれを提供します

しかし、実際にはDSTがオンになっているようには見えません。

Time.now.dst? 
# false 
Time.now.hour 
# 7 

私はそれがRailsのものかサーバーの誤った構成かどうかはわかりませんが、私にとっては正しいと思われます。

+0

タイムゾーンが異なる場合や、異なる時刻(UTC)を指定する場合、または実際に夏時間の場合のみですか? – xyious

+0

'config.time_zone = 'London''' config.active_record.default_timezone =:local'を試してみましたか? –

+0

おそらく生産の日付/時刻が間違っています(まだ冬です)。 – BoraMa

答えて

2

このアプリケーションがドッカーコンテナ内で実行されている場合、ホストサーバーのタイムゾーンがコンテナに適用されないことがあります。おそらくTZという環境変数を、あなたが望む時間帯に設定することができます。ルビーがそれを選択します。

ではなく、では、アプリケーション/データベースにUTC以外のタイムゾーンを使用することを強くお勧めします。問題が発生する可能性がほとんどあります。

完全開示:私はドックメンテナーの一人です。

+0

それはうまくいった。私はちょうど 'dokku config:app-name ENV = prod TZ = Europe/London'を設定しました。 Gracias @Jose。 – pzin