РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
946 of 1163 menu

Класс ZonedDateTime

Класс ZonedDateTime из пакета java.time представляет собой неизменяемый объект, который хранит дату, время и часовой пояс. В отличие от LocalDateTime, класс ZonedDateTime содержит информацию о зоне (например, Europe/Paris) и смещении относительно UTC, что позволяет корректно работать с моментами времени в разных регионах мира, учитывая переходы на летнее время. Объекты класса создаются с помощью статических методов now, of и parse. Класс реализует интерфейсы Temporal, ChronoZonedDateTime и Serializable.

Синтаксис

ZonedDateTime.now() ZonedDateTime.now(ZoneId zone) ZonedDateTime.of(year, month, day, hour, minute, second, nano, zone) ZonedDateTime.parse(text)

Пример

Давайте получим текущую дату и время в системном часовом поясе:

import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZonedDateTime now = ZonedDateTime.now(); System.out.println(now); } }

Результат выполнения кода:

2024-03-15T14:30:45.123+03:00[Europe/Moscow]

Пример

Давайте получим текущую дату и время в конкретном часовом поясе:

import java.time.ZonedDateTime; import java.time.ZoneId; public class Main { public static void main(String[] args) { ZoneId zone = ZoneId.of("America/New_York"); ZonedDateTime now = ZonedDateTime.now(zone); System.out.println(now); } }

Результат выполнения кода:

2024-03-15T07:30:45.123-04:00[America/New_York]

Пример

Давайте создадим объект ZonedDateTime с помощью метода of, передав год, месяц, день, часы, минуты, секунды и часовой пояс:

import java.time.ZonedDateTime; import java.time.ZoneId; public class Main { public static void main(String[] args) { ZoneId zone = ZoneId.of("Europe/Paris"); ZonedDateTime dateTime = ZonedDateTime.of(2024, 6, 15, 12, 30, 0, 0, zone); System.out.println(dateTime); } }

Результат выполнения кода:

2024-06-15T12:30+02:00[Europe/Paris]

Пример

Давайте разберём строку в объект ZonedDateTime с помощью метода parse:

import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZonedDateTime dateTime = ZonedDateTime.parse("2024-06-15T12:30:00+02:00[Europe/Paris]"); System.out.println(dateTime); } }

Результат выполнения кода:

2024-06-15T12:30+02:00[Europe/Paris]

Пример

Давайте получим отдельные компоненты даты и времени из объекта ZonedDateTime:

import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZonedDateTime dateTime = ZonedDateTime.parse("2024-06-15T12:30:45+02:00[Europe/Paris]"); System.out.println(dateTime.getYear()); System.out.println(dateTime.getMonthValue()); System.out.println(dateTime.getDayOfMonth()); System.out.println(dateTime.getHour()); System.out.println(dateTime.getMinute()); System.out.println(dateTime.getSecond()); System.out.println(dateTime.getZone()); } }

Результат выполнения кода:

2024 6 15 12 30 45 Europe/Paris

Пример

Давайте преобразуем момент времени из одного часового пояса в другой с помощью метода withZoneSameInstant:

import java.time.ZonedDateTime; import java.time.ZoneId; public class Main { public static void main(String[] args) { ZonedDateTime paris = ZonedDateTime.parse("2024-06-15T12:30:00+02:00[Europe/Paris]"); ZonedDateTime tokyo = paris.withZoneSameInstant(ZoneId.of("Asia/Tokyo")); System.out.println(paris); System.out.println(tokyo); } }

Результат выполнения кода:

2024-06-15T12:30+02:00[Europe/Paris] 2024-06-15T19:30+09:00[Asia/Tokyo]

Пример

Давайте преобразуем объект ZonedDateTime в LocalDateTime и Instant:

import java.time.ZonedDateTime; import java.time.LocalDateTime; import java.time.Instant; public class Main { public static void main(String[] args) { ZonedDateTime dateTime = ZonedDateTime.parse("2024-06-15T12:30:00+02:00[Europe/Paris]"); LocalDateTime local = dateTime.toLocalDateTime(); Instant instant = dateTime.toInstant(); System.out.println(local); System.out.println(instant); } }

Результат выполнения кода:

2024-06-15T12:30 2024-06-15T10:30:00Z

Смотрите также

  • класс ZonedDateTime,
    который представляет дату и время с часовым поясом
  • метод now,
    который возвращает текущую дату и время с поясом
  • метод of,
    который создаёт объект из компонентов даты и времени
  • метод parse,
    который разбирает строку в объект ZonedDateTime
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить