4
Time.use_zone('Pacific Time (US & Canada)') do
  p Time.zone.now
end 

私は以下を取得します:=> Sun, 14 Apr 2013 20:30:53 PDT -07:00

しかし、Rails Time Zone Select を実行すると....-8:00非常に明確に表示されます。あるエリアでは -7 で別のエリアでは -8 なのはなぜですか?

また、タイム ゾーンHawaii-10:001 時間ずれていない場合もあります。

これは DST と関係があると思いますが、それが適切に機能しているのか、不適切に機能しているのか、他に何かする必要があることを意味するのか、もっと興味があります。

最終的に私はこれを日付ピッカーで使用していますが、使用するとTime.zone.parse(フィルターの周りのタイムゾーンとともに)、すべてが1時間オフセットされるのは非常に奇妙です。

ありがとう

編集

Heresは、別のコードでも経験した同様の問題です

2.0.0-p0 :006 >
2.0.0-p0 :006 > u.meetups.in_future.first.meetup_time
  Meetup Load (0.4ms)  SELECT `meetups`.* FROM `meetups` WHERE `meetups`.`user_id` = 1 AND (meetup_time >= '2013-04-23 04:46:48') ORDER BY meetup_time ASC LIMIT 1
 => Tue, 23 Apr 2013 05:43:00 UTC 00:00
2.0.0-p0 :007 >

where 句と比較した結果の不一致に注意してください。

編集

CST では正常に動作しているように見えますが、PST では 1 時間程度ずれていますか?? これはすべて同じ問題だと思います。パズルのピースが欠けているだけです。

4

1 に答える 1

2

出力は正しいです。太平洋夏時間のオフセットは -7 ですが、太平洋標準時のオフセットは -8 です。私の推測では、「Rails Time Zone Select」(それが何であれ) は、現在のオフセットではなく、「標準」のオフセットのみを表示していると思います。これは、タイム ゾーン ピッカーでは一般的です。

ハワイはいかなる種類のサマータイムも実施していないため、2 番目のポイントに対処します。

3 番目の点については、値が UTC に変換される理由に答えるために、データベース プラットフォームについて詳しく知る必要があります。これらがイベント時間であることを考えると、UTCである必要があると言えます。UTC からのオフセットも保存されている場合に限り、"ミートアップ" の場所のタイム ゾーンにすることもできます。しかし、それらがサーバーのタイムゾーンにあるべきではありません。

4 番目のポイントについては、詳細がわからないと何を言いたいのかわかりません。必要に応じて拡張します。

于 2013-04-23T17:01:26.800 に答える