0

私は UTC から -3 時間のブラジルにいます。Rails でタイム ゾーンの設定を行っていないため、コンソールの動作がおかしくなっています。例を次に示します。

    1.9.3p194 :099 >   FreeTime.first.starts_at
     => 2000-01-01 11:15:26 UTC 
    1.9.3p194 :100 > FreeTime.first.starts_at.localtime
     => 2000-01-01 09:15:26 -0200 
    1.9.3p194 :101 > FreeTime.first.starts_at.localtime.zone
     => "BRST" 
    1.9.3p194 :102 > Time.now
     => 2013-02-25 10:24:51 -0300 
    1.9.3p194 :103 > Time.now.zone
     => "BRT" 
    1.9.3p194 :104 > Time.zone
     => (GMT+00:00) UTC

ご覧のとおり、問題は Rails Time クラスが (私のシステム クロックから) 私の localzone を正しく把握しているのに、ActiveRecord がどういうわけか間違っていることです。何も設定していないのに、ActiveRecord が私のタイムゾーンが BRST (正しいのは BRT) であると誤って判断する理由を知りたいです。

4

1 に答える 1

2

それはまったく間違っていません。それはあなたがブラジルのタイムゾーンにいることを認識し、2000-01-01 11:15:26 UTCで、ブラジルのタイムゾーンはBRST、つまりUTC-2にありました。

2000には、BRST->BRT移行は2月26日に行われました。

タイムゾーンは実際には「BRT」または「BRST」ではないことを理解する必要があります。これは、2つの間の遷移を含め、2つの組み合わせです。たとえば、私は英国にいます。現在GMTを使用しており、夏にBSTに移行する予定です。したがって、夏の時間値の正しい出力は、UTC+1のBSTになります。

于 2013-02-25T14:00:13.413 に答える