Класс ZoneId
Класс ZoneId представляет собой идентификатор часового пояса,
например, Europe/Paris или Asia/Tokyo.
Он используется для преобразования дат и времени между разными
часовыми поясами, а также для получения правил перехода на летнее
время. Объект ZoneId можно создать с помощью метода
of, передав в него название часового пояса,
или получить системный часовой пояс по умолчанию через
systemDefault. Также можно получить список доступных
идентификаторов через getAvailableZoneIds.
Синтаксис
ZoneId zone = ZoneId.of("Europe/Paris");
ZoneId systemZone = ZoneId.systemDefault();
Пример
Давайте создадим объект ZoneId для часового пояса
Europe/Paris и выведем его в консоль:
import java.time.ZoneId;
public class Main
{
public static void main(String[] args)
{
ZoneId zone = ZoneId.of("Europe/Paris");
System.out.println(zone);
}
}
Результат выполнения кода:
"Europe/Paris"
Пример
Давайте получим системный часовой пояс по умолчанию:
import java.time.ZoneId;
public class Main
{
public static void main(String[] args)
{
ZoneId zone = ZoneId.systemDefault();
System.out.println(zone);
}
}
Результат выполнения кода (зависит от настроек системы):
"Europe/Moscow"
Пример
Давайте получим список всех доступных идентификаторов часовых поясов и выведем их количество:
import java.time.ZoneId;
import java.util.Set;
public class Main
{
public static void main(String[] args)
{
Set<String> zones = ZoneId.getAvailableZoneIds();
System.out.println(zones.size());
}
}
Результат выполнения кода (количество зависит от версии JDK):
603
Пример
Давайте создадим ZonedDateTime с использованием
ZoneId для часового пояса Asia/Tokyo:
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Main
{
public static void main(String[] args)
{
ZoneId zone = ZoneId.of("Asia/Tokyo");
ZonedDateTime zdt = ZonedDateTime.now(zone);
System.out.println(zdt.getZone());
}
}
Результат выполнения кода:
"Asia/Tokyo"
Смотрите также
-
класс
ZonedDateTime,
который представляет дату и время с часовым поясом -
метод
of,
который создает ZoneId по идентификатору -
метод
systemDefault,
который возвращает системный часовой пояс -
класс
LocalDateTime,
который представляет дату и время без часового пояса