Метод toInstant
Метод toInstant класса ZonedDateTime преобразует текущий объект даты и времени с учётом часового пояса в объект класса Instant. Полученный Instant представляет собой момент времени в UTC (всемирное координированное время) и не содержит информации о часовом поясе. Метод не принимает параметров и возвращает новый объект Instant, при этом исходный объект ZonedDateTime остаётся неизменным.
Синтаксис
zonedDateTime.toInstant()
Пример
Давайте создадим объект ZonedDateTime с часовым поясом и преобразуем его в Instant:
import java.time.ZonedDateTime;
import java.time.ZoneId;
import java.time.Instant;
public class Main
{
public static void main(String[] args)
{
ZonedDateTime zdt = ZonedDateTime.of(2025, 12, 31, 23, 59, 59, 0, ZoneId.of("Europe/Moscow"));
Instant res = zdt.toInstant();
System.out.println(res);
}
}
Результат выполнения кода:
"2025-12-31T20:59:59Z"
Пример
Давайте сравним Instant, полученный из двух разных часовых поясов для одного и того же момента времени:
import java.time.ZonedDateTime;
import java.time.ZoneId;
import java.time.Instant;
public class Main
{
public static void main(String[] args)
{
ZonedDateTime moscow = ZonedDateTime.of(2025, 6, 15, 12, 0, 0, 0, ZoneId.of("Europe/Moscow"));
ZonedDateTime tokyo = ZonedDateTime.of(2025, 6, 15, 18, 0, 0, 0, ZoneId.of("Asia/Tokyo"));
Instant res1 = moscow.toInstant();
Instant res2 = tokyo.toInstant();
System.out.println(res1);
System.out.println(res2);
System.out.println(res1.equals(res2));
}
}
Результат выполнения кода:
"2025-06-15T09:00:00Z"
"2025-06-15T09:00:00Z"
true
Пример
Давайте преобразуем текущее время с системным часовым поясом в Instant:
import java.time.ZonedDateTime;
import java.time.Instant;
public class Main
{
public static void main(String[] args)
{
ZonedDateTime now = ZonedDateTime.now();
Instant res = now.toInstant();
System.out.println(res);
}
}
Результат выполнения кода:
"2025-01-01T00:00:00Z"
Смотрите также
-
класс
ZonedDateTime,
который представляет дату и время с часовым поясом -
метод
toLocalDateTime,
который преобразует в LocalDateTime -
метод
withZoneSameInstant,
который меняет часовой пояс с сохранением момента времени -
метод
toInstantкласса Date,
который преобразует Date в Instant