Pro určení časového pásma v Javě 8 slouží ZoneId. K jeho vytvoření se používá řetězec ve stylu kontinent/město. Seznam časových zón naleznete například na wiki.
ZoneId pragueZI = ZoneId.of("Europe/Prague"); ZoneId newYorkZI = ZoneId.of("America/New_York"); ZoneId vladivostokZI = ZoneId.of("Asia/Vladivostok"); ZoneId hawaiiZI = ZoneId.of("US/Hawaii"); System.out.println(pragueZI); System.out.println(newYorkZI); System.out.println(vladivostokZI); System.out.println(hawaiiZI);
Výsledek
Europe/Prague America/New_York Asia/Vladivostok US/Hawaii
Pro uchování/vytvoření času, který obsahuje i údaj o časové zóně slouží ZonedDateTime
ZonedDateTime pragueCurrent = ZonedDateTime.now(pragueZI); ZonedDateTime newYorkCurrent = ZonedDateTime.now(newYorkZI); ZonedDateTime vladivostokCurrent = ZonedDateTime.now(vladivostokZI); ZonedDateTime hawaiiCurrent = ZonedDateTime.now(hawaiiZI); System.out.println(pragueCurrent); System.out.println(newYorkCurrent); System.out.println(vladivostokCurrent); System.out.println(hawaiiCurrent);
Výsledek
2016-09-21T16:35:32.602+02:00[Europe/Prague] 2016-09-21T10:35:32.609-04:00[America/New_York] 2016-09-22T00:35:32.609+10:00[Asia/Vladivostok] 2016-09-21T04:35:32.609-10:00[US/Hawaii]