Čas v různých časových zónách v Javě 8

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]

Napsat komentář