2016-05-26 14 views
9

:オフセットは、彼らは世界中の一日の同じ時間に発生した順序で比較され`java.time.ZoneOffset`インスタンスが 'backwards'をソートするのはなぜですか? <a href="https://docs.oracle.com/javase/8/docs/api/java/time/ZoneOffset.html#compareTo-java.time.ZoneOffset-" rel="nofollow noreferrer">documentation</a>から

。従って、+10:00のオフセットは、+ 09:00のオフセットの前に来て、それ以降も-18:00になる。

誰もが、彼らがこのように命じている理由を知っていますか?これは、オフセットの数値の順序の逆であるため、直感的ではないようです。それはまた、GMT/UTC + 0の中心の地図上で、左から右に向かって、表示される順序の逆です。

(別名:引用されたドキュメントが「-18:00まで」を参照する理由を理解できません。-12:00または-24:00わかります。サポートされているすべてのjava.time.ZoneIdのタイムゾーンのオフセットを印刷します。

UPDATE:私の脇にある回答。

2008年、世界のタイムゾーンオフセットは-12:00〜+ 14:00まで拡張されました。その範囲に問題が延長されることを防ぐ、まだ、まだ検証を提供するために、オフセットの範囲は-18に制限されている:00包括的な18:00。

答えて

6

あなたには、いくつかのイベントが発生したときの、関連するタイムゾーンで、ローカライズされた日付/時刻のリストを持っている想像してみて:

(1) 2016/05/26 00:00:00 in Australian Eastern Standard Time (UTC+10) 
(2) 2016/05/26 00:00:00 in Greenwich Mean Time (UTC+0) 
(3) 2016/05/26 00:00:00 in Japan Standard Time (UTC+9) 

あなたが言う、1つのタイムゾーンの瞬間にこれらを変換することができますGMT:

(1) 2016/05/25 14:00:00 GMT 
(2) 2016/05/26 00:00:00 GMT 
(3) 2016/05/25 15:00:00 GMT 

となりました "最初のとき、何が起こっている" の順に並べ替える:

(1) 2016/05/25 14:00:00 GMT 
(3) 2016/05/25 15:00:00 GMT 
(2) 2016/05/26 00:00:00 GMT 

だから、オーストラリアの時間は、(1)英国時間(2)の前にある、日本時間(3)、前です。それはちょうどの時間帯に同じ順序を適用しています

:引用符が言うように:

オフセットは、彼らが世界中で一日の同じ時間

を発生することを順に比較され、

だから、オーストラリア東部標準時間はグリニッジ標準時「の前に」と考えられている日本標準時、「前」と考えられています。もちろん

+0

、それが「後方」である理由を参照する別の方法は、日光があまりにも世界地図](http://www.yellowpagesoftheworld.com/world/world-map.htm)全体に「逆方向」になる]ということです! –

+0

非常によく書かれた回答。私はそれについてもう一つの考え方を追加します:新しい日が東に早く起きる(地球の回転)。例えば、ロンドン株式市場はロンドン市場の前に開かれ、ロンドン市場はシカゴ市場の前に開いているニューヨーク市場の前に開いています。 java.timeで使用されるISO 8601標準では、我々は先にUTC(他の時間キーパーを経由して、マイナスを使用している)のあるゾーンを表現するには、プラス記号を使用します。左から右の場合は、1対1の言語とノース・オン・トップ・マップの場合にのみそうです。南を地図の上に置くかアラビア語を学び、時間順に読むことができます。 –

関連する問題

 関連する問題