Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpDtZn 154 of 322 menu
◀ ▶

Идентификатор часового пояса в Java

ZoneId связывает календарное время с правилами смещения для региона. Имя вроде Europe/Moscow учитывает переход на летнее время там, где он есть. Фиксированный сдвиг задают через ZoneOffset, но для городов обычно берут именованную зону.

Пояс JVM читают systemDefault. Конкретный регион создают of со строкой из базы IANA:

import java.time.ZoneId; public class Main { public static void main(String[] args) { ZoneId local = ZoneId.systemDefault(); ZoneId moscow = ZoneId.of("Europe/Moscow"); System.out.println(local); System.out.println(moscow); } }

Универсальный момент переводят в локальные часы через atZone. Текущее смещение для зоны на дату можно прочитать отдельно:

import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZoneId tokyo = ZoneId.of("Asia/Tokyo"); ZonedDateTime there = Instant.now().atZone(tokyo); System.out.println(there.getHour()); System.out.println(there.getOffset()); } }

Неверное имя зоны приводит к исключению при создании. Список доступных идентификаторов лежит в ZoneId.getAvailableZoneIds, но в программе обычно хранят заранее известные константы или настройку пользователя.

Выведите системный идентификатор часового пояса.

Создайте зону Europe/Moscow, переведите в нее текущий момент и выведите часы.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить