2016-05-26 68 views
9

documentation爲什麼`java.time.ZoneOffset`實例向後排序?

的偏移,因爲它們發生在世界各地每天的同一時間順序進行比較。因此,+10:00的偏移量在+09:00偏移之前出現,直到-18:00。

有誰知道他們這樣訂購的原因?它似乎與直覺相反,因爲它與偏移量的數值順序相反。在GMT/UTC + 0居中的地圖上,從左到右閱讀的順序也與它們出現的順序相反。

(另外:我不明白爲什麼引用的文檔指的是「下降到-18:00」-12:00或-24:00我明白了,爲什麼-18:00?如果你打印所有受支持的java.time.ZoneId時區的偏移量,範圍從-11:00至+12:00。)

更新:我的一個答案。在同一文檔中的其他地方:

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) 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)在日本時間(3)之前,即英國時間(2)之前。

它只是將相同的順序時區:作爲報價說:

的偏移量的順序相比,他們出現了一天的同一時間在世界各地

因此,澳大利亞東部標準時間被認爲是「之前」的日本標準時間,這被認爲是「之前」的格林尼治標準時間。

+0

當然,另一種看待它爲什麼是「倒退」的方式是:日光也在整個世界地圖上「倒退」)(http://www.yellowpagesoftheworld.com/world/world-map.htm)! –

+0

寫得很好答案。我會再增加一條思路:東部的一個新的日子(地球自轉)。例如,東京股市在倫敦市場之前開放,倫敦市場在芝加哥市場之前開放的紐約市場之前開放。在java.time使用的ISO 8601標準中,我們使用加號來表示超出UTC的區域(順便提一下,其他時間守護程序使用了負值)。至於從左到右,這隻適用於l-to-r語言和North-on-top地圖。將南方置於頂部,或學習阿拉伯語,以便按時間順序閱讀地圖。 –

相關問題