Метод atZone
Метод atZone класса LocalDateTime присоединяет
к текущей дате и времени информацию о временной зоне.
В единственный параметр метод принимает объект ZoneId,
который задает нужную временную зону.
В результате возвращается объект ZonedDateTime,
содержащий дату, время и зону.
Исходный объект LocalDateTime при этом не изменяется,
так как класс неизменяемый.
Синтаксис
localDateTime.atZone(zone)
Пример
Давайте присоединим к дате и времени временную зону
Europe/Paris и выведем результат:
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Main
{
public static void main(String[] args)
{
LocalDateTime ldt = LocalDateTime.of(2025, 12, 31, 23, 59);
ZoneId zone = ZoneId.of("Europe/Paris");
ZonedDateTime res = ldt.atZone(zone);
System.out.println(res);
}
}
Результат выполнения кода:
"2025-12-31T23:59+01:00[Europe/Paris]"
Пример
Давайте присоединим к дате и времени системную временную зону и выведем результат:
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Main
{
public static void main(String[] args)
{
LocalDateTime ldt = LocalDateTime.of(2025, 6, 15, 12, 30);
ZoneId zone = ZoneId.systemDefault();
ZonedDateTime res = ldt.atZone(zone);
System.out.println(res);
}
}
Результат выполнения кода:
"2025-06-15T12:30+03:00[Europe/Moscow]"
Пример
Давайте получим из результата atZone обратно дату и время
с помощью метода toLocalDateTime:
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Main
{
public static void main(String[] args)
{
LocalDateTime ldt = LocalDateTime.of(2025, 1, 1, 0, 0);
ZoneId zone = ZoneId.of("UTC");
ZonedDateTime zdt = ldt.atZone(zone);
LocalDateTime res = zdt.toLocalDateTime();
System.out.println(res);
}
}
Результат выполнения кода:
"2025-01-01T00:00"
Смотрите также
-
класс
LocalDateTime,
который представляет дату и время без зоны -
класс
ZonedDateTime,
который представляет дату и время с зоной -
класс
ZoneId,
который представляет временную зону -
метод
toLocalDateTime,
который возвращает дату и время без зоны