Z documentation:Dlaczego instancje `java.time.ZoneOffset` sortują 'wstecz'?
Przesunięcia porównywane są w kolejności, w jakiej występują one na tej samej porze dnia, na całym świecie. Tak więc przesunięcie o +10: 00 następuje przed przesunięciem o +09: 00 i tak dalej do -18: 00.
Czy ktoś wie, dlaczego są one zamówione w ten sposób? Wydaje się to sprzeczne z intuicją, ponieważ jest przeciwieństwem rzędu wartości liczbowej przesunięcia. Jest to również przeciwieństwo kolejności, w jakiej pojawiłyby się, czytając od lewej do prawej, na mapie GMT/UTC + 0.
(Poza tym: nie rozumiem, dlaczego cytowana dokumentacja odnosi się do "do -18: 00" albo -12: 00 lub -24: 00 Rozumiem Dlaczego -18: 00? wydrukuj przesunięcia wszystkich obsługiwanych stref czasowych java.time.ZoneId
w zakresie od -11: 00 do +12: 00.)
AKTUALIZACJA: Odpowiedź na bok. Z innych źródeł tej samej dokumentacji:
W 2008 r. Przesunięcia stref czasowych na całym świecie wydłużono z -12: 00 do +14: 00. Aby zapobiec problemom z rozszerzaniem tego zakresu, ale nadal zapewniać walidację, zakres przesunięć jest ograniczony do -18: 00 do 18:00 włącznie.
Oczywiście innym sposobem sprawdzenia, dlaczego jest "wstecz", jest to, że światło dzienne "cofa się" również na całej mapie świata (http://www.yellowpagesoftheworld.com/world/world-map.htm)! –
Bardzo dobrze napisana odpowiedź. Dodam jeszcze jeden sposób, żeby o tym pomyśleć: nowy dzień wschodzi wcześniej na wschodzie (rotacja Ziemi). Na przykład giełdy w Tokio otwierają się przed rynkami londyńskimi, a rynki londyńskie otwierają się przed rynkami nowojorskimi, które otwierają się przed rynkami w Chicago. W standardzie ISO 8601 używanym przez java.time, używamy znaku plusa do reprezentowania stref, które wyprzedzają UTC (inni gracze czasu użyli przy okazji Minusa). Jeśli chodzi o od lewej do prawej, dotyczy to tylko języków "l-to-r" i "North-on-top". Umieść na górze South lub naucz się języka arabskiego, aby mapa była chronologicznie wyświetlana. –