Метод toLocalDateTime
Метод toLocalDateTime класса ZonedDateTime возвращает объект LocalDateTime, содержащий ту же дату и время, что и исходный объект, но без информации о часовом поясе. Метод не принимает параметров. Исходный объект ZonedDateTime при этом не изменяется, так как класс является неизменяемым.
Синтаксис
zonedDateTime.toLocalDateTime()
Пример
Давайте создадим объект ZonedDateTime с указанием часового пояса и получим из него локальную дату-время:
import java.time.ZonedDateTime;
import java.time.LocalDateTime;
public class Main
{
public static void main(String[] args)
{
ZonedDateTime zoned = ZonedDateTime.parse("2025-03-15T10:30:00+03:00[Europe/Moscow]");
LocalDateTime local = zoned.toLocalDateTime();
System.out.println(zoned);
System.out.println(local);
}
}
Результат выполнения кода:
"2025-03-15T10:30+03:00[Europe/Moscow]"
"2025-03-15T10:30"
Пример
Давайте получим текущую дату-время с часовым поясом и преобразуем её в локальную:
import java.time.ZonedDateTime;
import java.time.LocalDateTime;
public class Main
{
public static void main(String[] args)
{
ZonedDateTime now = ZonedDateTime.now();
LocalDateTime local = now.toLocalDateTime();
System.out.println(now);
System.out.println(local);
}
}
Результат выполнения кода (значения зависят от текущего момента):
"2025-03-15T10:30:00.123456+03:00[Europe/Moscow]"
"2025-03-15T10:30:00.123456"
Пример
Давайте проверим, что исходный объект ZonedDateTime не изменяется после вызова метода:
import java.time.ZonedDateTime;
import java.time.LocalDateTime;
import java.time.ZoneId;
public class Main
{
public static void main(String[] args)
{
ZonedDateTime zoned = ZonedDateTime.of(2025, 3, 15, 10, 30, 0, 0, ZoneId.of("Europe/Moscow"));
LocalDateTime local = zoned.toLocalDateTime();
System.out.println(zoned);
System.out.println(local);
System.out.println(zoned.getZone());
}
}
Результат выполнения кода:
"2025-03-15T10:30+03:00[Europe/Moscow]"
"2025-03-15T10:30"
"Europe/Moscow"
Смотрите также
-
класс
ZonedDateTime,
который представляет дату-время с часовым поясом -
класс
LocalDateTime,
который представляет локальную дату-время -
метод
toInstant,
который преобразует дату-время в момент времени -
метод
withZoneSameInstant,
который меняет часовой пояс с сохранением момента