Spec-Zone.ru › OpenJDK 27

Класс ZonedDateTime

java.lang.Object
java.time.ZonedDateTime
Все реализуемые интерфейсы:
Serializable, Comparable<ChronoZonedDateTime<?>>, ChronoZonedDateTime<LocalDate>, Temporal, TemporalAccessor
public final class ZonedDateTime extends Object implements Temporal, ChronoZonedDateTime<LocalDate>, Serializable
Дата и время с часовым поясом в календарной системе ISO-8601, например 2007-12-03T10:15:30+01:00 Europe/Paris.

ZonedDateTime — неизменяемое представление даты и времени с часовым поясом. Этот класс хранит все поля даты и времени с точностью до наносекунд, а также часовой пояс; смещение зоны используется для обработки неоднозначных локальных даты и времени. Например, значение «2 октября 2007 года, 13:45.30.123456789 +02:00 в часовом поясе Europe/Paris» может храниться в ZonedDateTime.

Этот класс обрабатывает преобразование с локальной временной шкалы LocalDateTime на временную шкалу мгновений Instant. Разница между этими временными шкалами — смещение относительно UTC/Гринвича, представленное как ZoneOffset.

Для преобразования между двумя временными шкалами необходимо вычислить смещение, используя rules, полученные из ZoneId. Получить смещение для мгновения просто, поскольку для каждого мгновения существует ровно одно допустимое смещение. Напротив, получить смещение для локальных даты и времени непросто. Возможны три случая:

  • Обычный случай — одно допустимое смещение. На протяжении большей части года действует обычный случай, когда для локальных даты и времени существует одно допустимое смещение.
  • Разрыв — ни одного допустимого смещения. Это происходит, когда часы переводятся вперед, обычно из-за весеннего перехода на летнее время — с «зимнего» на «летнее». Во время разрыва существуют значения локальных даты и времени, для которых нет допустимого смещения.
  • Перекрытие — два допустимых смещения. Это происходит, когда часы переводятся назад, обычно из-за осеннего перехода с «летнего» на «зимнее» время. Во время перекрытия существуют значения локальных даты и времени с двумя допустимыми смещениями.

Любой метод, который прямо или неявно преобразует локальные дату и время в мгновение, получая смещение, может быть сложным.

Для разрывов обычно применяется следующая стратегия: если локальные дата и время попадают в середину разрыва, результирующие дата и время с часовым поясом будут сдвинуты вперед на длину разрыва, в результате чего дата и время попадут в область более позднего смещения, обычно соответствующего «летнему» времени.

Для перекрытий обычно применяется следующая стратегия: если локальные дата и время попадают в середину перекрытия, сохраняется предыдущее смещение. Если предыдущего смещения нет или оно недопустимо, используется более раннее смещение, обычно соответствующее «летнему» времени. Два дополнительных метода, withEarlierOffsetAtOverlap() и withLaterOffsetAtOverlap(), помогают обработать случай перекрытия.

С точки зрения проектирования этот класс следует рассматривать прежде всего как сочетание LocalDateTime и ZoneId. ZoneOffset — важная, но вторичная часть информации, используемая для того, чтобы класс представлял мгновение, особенно во время перекрытия при переходе на летнее время.

Это основанный на значениях класс; программистам следует считать экземпляры, которые равны, взаимозаменяемыми и не использовать экземпляры для синхронизации, иначе возможно непредсказуемое поведение. Например, в одном из будущих выпусков синхронизация может завершиться неудачно. Для сравнений следует использовать метод equals.

Требования к реализации:
ZonedDateTime хранит состояние, эквивалентное трем отдельным объектам: LocalDateTime, ZoneId и разрешенному ZoneOffset. Смещение и локальные дата и время используются для определения мгновения при необходимости. Идентификатор зоны используется для получения правил, определяющих, как и когда изменяется смещение. Смещение нельзя задать произвольно, поскольку зона определяет, какие смещения допустимы.

Этот класс является неизменяемым и потокобезопасным.

Начиная с версии:
1.8
См. также:
  • Форма сериализации

Краткое описание методов

Модификатор и тип Метод Описание
boolean equals(Object obj)
Проверяет, равны ли эти дата и время другим дате и времени.
String format(DateTimeFormatter formatter)
Форматирует эти дату и время с помощью указанного средства форматирования.
static ZonedDateTime from(TemporalAccessor temporal)
Получает экземпляр ZonedDateTime из временного объекта.
int get(TemporalField field)
Получает значение указанного поля этих даты и времени в виде int.
int getDayOfMonth()
Получает поле дня месяца.
DayOfWeek getDayOfWeek()
Получает поле дня недели, представляющее собой перечисление DayOfWeek.
int getDayOfYear()
Получает поле дня года.
int getHour()
Получает поле часа дня.
long getLong(TemporalField field)
Получает значение указанного поля этих даты и времени в виде long.
int getMinute()
Получает поле минуты часа.
Month getMonth()
Получает поле месяца года с помощью перечисления Month.
int getMonthValue()
Получает поле месяца года в диапазоне от 1 до 12.
int getNano()
Получает поле наносекунды секунды.
ZoneOffset getOffset()
Получает смещение часового пояса, например «+01:00».
int getSecond()
Получает поле секунды минуты.
int getYear()
Получает поле года.
ZoneId getZone()
Получает часовой пояс, например «Europe/Paris».
int hashCode()
Хеш-код этих даты и времени.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица измерения.
ZonedDateTime minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этих даты и времени, из которых вычтено указанное значение.
ZonedDateTime minus(TemporalAmount amountToSubtract)
Возвращает копию этих даты и времени, из которых вычтено указанное значение.
ZonedDateTime minusDays(long days)
Возвращает копию этих ZonedDateTime, из которых вычтено указанное количество дней.
ZonedDateTime minusHours(long hours)
Возвращает копию этих ZonedDateTime, из которых вычтено указанное количество часов.
ZonedDateTime minusMinutes(long minutes)
Возвращает копию этих ZonedDateTime, из которых вычтено указанное количество минут.
ZonedDateTime minusMonths(long months)
Возвращает копию этих ZonedDateTime, из которых вычтено указанное количество месяцев.
ZonedDateTime minusNanos(long nanos)
Возвращает копию этих ZonedDateTime, из которых вычтено указанное количество наносекунд.
ZonedDateTime minusSeconds(long seconds)
Возвращает копию этих ZonedDateTime, из которых вычтено указанное количество секунд.
ZonedDateTime minusWeeks(long weeks)
Возвращает копию этих ZonedDateTime, из которых вычтено указанное количество недель.
ZonedDateTime minusYears(long years)
Возвращает копию этих ZonedDateTime, из которых вычтено указанное количество лет.
static ZonedDateTime now()
Получает текущие дату и время по системным часам в часовом поясе по умолчанию.
static ZonedDateTime now(Clock clock)
Получает текущие дату и время по указанным часам.
static ZonedDateTime now(ZoneId zone)
Получает текущие дату и время по системным часам в указанном часовом поясе.
static ZonedDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneId zone)
Получает экземпляр ZonedDateTime на основе года, месяца, дня, часа, минуты, секунды, наносекунды и часового пояса.
static ZonedDateTime of(LocalDate date, LocalTime time, ZoneId zone)
Получает экземпляр ZonedDateTime на основе локальных даты и времени.
static ZonedDateTime of(LocalDateTime localDateTime, ZoneId zone)
Получает экземпляр ZonedDateTime на основе локальных даты и времени.
static ZonedDateTime ofInstant(Instant instant, ZoneId zone)
Получает экземпляр ZonedDateTime на основе Instant.
static ZonedDateTime ofInstant(LocalDateTime localDateTime, ZoneOffset offset, ZoneId zone)
Получает экземпляр ZonedDateTime на основе мгновения, полученного объединением локальных даты и времени со смещением.
static ZonedDateTime ofLocal(LocalDateTime localDateTime, ZoneId zone, ZoneOffset preferredOffset)
Получает экземпляр ZonedDateTime на основе локальных даты и времени, используя предпочтительное смещение, если это возможно.
static ZonedDateTime ofStrict(LocalDateTime localDateTime, ZoneOffset offset, ZoneId zone)
Получает экземпляр ZonedDateTime, строго проверяя сочетание локальных даты и времени, смещения и идентификатора зоны.
static ZonedDateTime parse(CharSequence text)
Получает экземпляр ZonedDateTime из текстовой строки, например 2007-12-03T10:15:30+01:00[Europe/Paris].
static ZonedDateTime parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр ZonedDateTime из текстовой строки с помощью указанного средства форматирования.
ZonedDateTime plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этих даты и времени с добавленным указанным значением.
ZonedDateTime plus(TemporalAmount amountToAdd)
Возвращает копию этих даты и времени с добавленным указанным значением.
ZonedDateTime plusDays(long days)
Возвращает копию этих ZonedDateTime с добавленным указанным количеством дней.
ZonedDateTime plusHours(long hours)
Возвращает копию этих ZonedDateTime с добавленным указанным количеством часов.
ZonedDateTime plusMinutes(long minutes)
Возвращает копию этих ZonedDateTime с добавленным указанным количеством минут.
ZonedDateTime plusMonths(long months)
Возвращает копию этих ZonedDateTime с добавленным указанным количеством месяцев.
ZonedDateTime plusNanos(long nanos)
Возвращает копию этих ZonedDateTime с добавленным указанным количеством наносекунд.
ZonedDateTime plusSeconds(long seconds)
Возвращает копию этих ZonedDateTime с добавленным указанным количеством секунд.
ZonedDateTime plusWeeks(long weeks)
Возвращает копию этих ZonedDateTime с добавленным указанным количеством недель.
ZonedDateTime plusYears(long years)
Возвращает копию этих ZonedDateTime с добавленным указанным количеством лет.
<R> R query(TemporalQuery<R> query)
Выполняет запрос к этим дате и времени с помощью указанного запроса.
ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.
LocalDate toLocalDate()
Получает часть LocalDate этих даты и времени.
LocalDateTime toLocalDateTime()
Получает часть LocalDateTime этих даты и времени.
LocalTime toLocalTime()
Получает часть LocalTime этих даты и времени.
OffsetDateTime toOffsetDateTime()
Преобразует эти дату и время в OffsetDateTime.
String toString()
Выводит эти дату и время в виде String, например 2007-12-03T10:15:30+01:00[Europe/Paris].
ZonedDateTime truncatedTo(TemporalUnit unit)
Возвращает копию этих ZonedDateTime с усеченным временем.
long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет время до других даты и времени в единицах указанного типа.
ZonedDateTime with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этих даты и времени.
ZonedDateTime with(TemporalField field, long newValue)
Возвращает копию этих даты и времени, в которой указанному полю присвоено новое значение.
ZonedDateTime withDayOfMonth(int dayOfMonth)
Возвращает копию этих ZonedDateTime с измененным днем месяца.
ZonedDateTime withDayOfYear(int dayOfYear)
Возвращает копию этих ZonedDateTime с измененным днем года.
ZonedDateTime withEarlierOffsetAtOverlap()
Возвращает копию этих даты и времени, изменяя смещение часового пояса на более раннее из двух допустимых смещений при перекрытии локальной временной шкалы.
ZonedDateTime withFixedOffsetZone()
Возвращает копию этих даты и времени, в которой в качестве идентификатора зоны задано смещение.
ZonedDateTime withHour(int hour)
Возвращает копию этих ZonedDateTime с измененным часом дня.
ZonedDateTime withLaterOffsetAtOverlap()
Возвращает копию этих даты и времени, изменяя смещение часового пояса на более позднее из двух допустимых смещений при перекрытии локальной временной шкалы.
ZonedDateTime withMinute(int minute)
Возвращает копию этих ZonedDateTime с измененной минутой часа.
ZonedDateTime withMonth(int month)
Возвращает копию этих ZonedDateTime с измененным месяцем года.
ZonedDateTime withNano(int nanoOfSecond)
Возвращает копию этих ZonedDateTime с измененной наносекундой секунды.
ZonedDateTime withSecond(int second)
Возвращает копию этих ZonedDateTime с измененной секундой минуты.
ZonedDateTime withYear(int year)
Возвращает копию этих ZonedDateTime с измененным годом.
ZonedDateTime withZoneSameInstant(ZoneId zone)
Возвращает копию этих даты и времени с другим часовым поясом, сохраняя мгновение.
ZonedDateTime withZoneSameLocal(ZoneId zone)
Возвращает копию этих даты и времени с другим часовым поясом, по возможности сохраняя локальные дату и время.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Метод финализации устарел и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ждать до пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения указанного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения указанного интервала реального времени.

Методы, объявленные в интерфейсе ChronoZonedDateTime

compareTo, getChronology, isAfter, isBefore, isEqual, toEpochSecond, toInstant
Модификатор и тип Метод Описание
default int compareTo(ChronoZonedDateTime<?> other)
Сравнивает эти дату и время с другими датой и временем, включая хронологию.
default Chronology getChronology()
Получает хронологию этих даты и времени.
default boolean isAfter(ChronoZonedDateTime<?> other)
Проверяет, наступает ли мгновение этих даты и времени позже мгновения указанных даты и времени.
default boolean isBefore(ChronoZonedDateTime<?> other)
Проверяет, наступает ли мгновение этих даты и времени раньше мгновения указанных даты и времени.
default boolean isEqual(ChronoZonedDateTime<?> other)
Проверяет, совпадает ли мгновение этих даты и времени с мгновением указанных даты и времени.
default long toEpochSecond()
Преобразует эти дату и время в количество секунд с начала эпохи 1970-01-01T00:00:00Z.
default Instant toInstant()
Преобразует эти дату и время в Instant.

Подробное описание методов

now

public static ZonedDateTime now()
Получает текущие дату и время системных часов в часовом поясе по умолчанию.

Для получения текущих даты и времени будет выполнен запрос к system clock в часовом поясе по умолчанию. Часовой пояс и смещение будут заданы на основе часового пояса часов.

Использование этого метода исключает возможность применения альтернативных часов для тестирования, поскольку часы заданы в коде.

Возвращает:
текущие дату и время по системным часам, не null

now

public static ZonedDateTime now(ZoneId zone)
Получает текущие дату и время системных часов в указанном часовом поясе.

Для получения текущих даты и времени будет выполнен запрос к system clock. Указание часового пояса позволяет избежать зависимости от часового пояса по умолчанию. Смещение будет вычислено на основе указанного часового пояса.

Использование этого метода исключает возможность применения альтернативных часов для тестирования, поскольку часы заданы в коде.

Параметры:
zone — используемый идентификатор часового пояса, не null
Возвращает:
текущие дату и время по системным часам, не null

now

public static ZonedDateTime now(Clock clock)
Получает текущие дату и время по указанным часам.

Для получения текущих даты и времени будет выполнен запрос к указанным часам. Часовой пояс и смещение будут заданы на основе часового пояса часов.

Этот метод позволяет использовать альтернативные часы для тестирования. Альтернативные часы можно создать с помощью dependency injection.

Параметры:
clock — используемые часы, не null
Возвращает:
текущие дату и время, не null

of

public static ZonedDateTime of(LocalDate date, LocalTime time, ZoneId zone)
Создает экземпляр ZonedDateTime на основе локальных даты и времени.

Этот метод создает дату и время с часовым поясом, максимально точно соответствующие входным локальным дате и времени. Правила часовых поясов, например переход на летнее время, означают, что не всякие локальные дата и время допустимы для указанного часового пояса, поэтому локальные дата и время могут быть скорректированы.

Сначала локальные дата и время объединяются в локальные дату и время. Затем локальные дата и время преобразуются в единственный момент времени на временной шкале. Для этого находится допустимое смещение относительно UTC/Гринвича для локальных даты и времени, определяемое объектом rules идентификатора часового пояса.

В большинстве случаев для локальных даты и времени существует только одно допустимое смещение. При переходе на зимнее время, когда часы переводятся назад, допустимы два смещения. Этот метод использует более раннее смещение, обычно соответствующее «летнему» времени.

При переходе на летнее время, когда часы переводятся вперед, допустимых смещений нет. В этом случае локальные дата и время сдвигаются вперед на длительность разрыва. При типичном переходе на летнее время с изменением на один час локальные дата и время будут сдвинуты на час вперед, к смещению, обычно соответствующему «летнему» времени.

Параметры:
date — локальная дата, не null
time — локальное время, не null
zone — часовой пояс, не null
Возвращает:
дату и время с часовым поясом, не null

of

public static ZonedDateTime of(LocalDateTime localDateTime, ZoneId zone)
Создает экземпляр ZonedDateTime на основе локальных даты и времени.

Этот метод создает дату и время с часовым поясом, максимально точно соответствующие входным локальным дате и времени. Правила часовых поясов, например переход на летнее время, означают, что не всякие локальные дата и время допустимы для указанного часового пояса, поэтому локальные дата и время могут быть скорректированы.

Локальные дата и время преобразуются в единственный момент времени на временной шкале. Для этого находится допустимое смещение относительно UTC/Гринвича для локальных даты и времени, определяемое объектом rules идентификатора часового пояса.

В большинстве случаев для локальных даты и времени существует только одно допустимое смещение. При переходе на зимнее время, когда часы переводятся назад, допустимы два смещения. Этот метод использует более раннее смещение, обычно соответствующее «летнему» времени.

При переходе на летнее время, когда часы переводятся вперед, допустимых смещений нет. В этом случае локальные дата и время сдвигаются вперед на длительность разрыва. При типичном переходе на летнее время с изменением на один час локальные дата и время будут сдвинуты на час вперед, к смещению, обычно соответствующему «летнему» времени.

Параметры:
localDateTime — локальные дата и время, не null
zone — часовой пояс, не null
Возвращает:
дату и время с часовым поясом, не null

of

public static ZonedDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneId zone)
Создает экземпляр ZonedDateTime на основе года, месяца, дня, часа, минуты, секунды, наносекунды и часового пояса.

Этот метод создает дату и время с часовым поясом, максимально точно соответствующие локальным дате и времени, заданным семью указанными полями. Правила часовых поясов, например переход на летнее время, означают, что не всякие локальные дата и время допустимы для указанного часового пояса, поэтому локальные дата и время могут быть скорректированы.

Локальные дата и время преобразуются в единственный момент времени на временной шкале. Для этого находится допустимое смещение относительно UTC/Гринвича для локальных даты и времени, определяемое объектом rules идентификатора часового пояса.

В большинстве случаев для локальных даты и времени существует только одно допустимое смещение. При переходе на зимнее время, когда часы переводятся назад, допустимы два смещения. Этот метод использует более раннее смещение, обычно соответствующее «летнему» времени.

При переходе на летнее время, когда часы переводятся вперед, допустимых смещений нет. В этом случае локальные дата и время сдвигаются вперед на длительность разрыва. При типичном переходе на летнее время с изменением на один час локальные дата и время будут сдвинуты на час вперед, к смещению, обычно соответствующему «летнему» времени.

Этот метод предназначен главным образом для написания тестовых случаев. В коде, не предназначенном для тестирования, обычно используются другие методы создания времени со смещением. LocalDateTime предоставляет пять дополнительных удобных вариантов эквивалентного фабричного метода, принимающих меньше аргументов. Здесь они не представлены, чтобы уменьшить размер API.

Параметры:
year — представляемый год, от MIN_YEAR до MAX_YEAR
month — представляемый месяц года, от 1 (январь) до 12 (декабрь)
dayOfMonth — представляемый день месяца, от 1 до 31
hour — представляемый час дня, от 0 до 23
minute — представляемая минута часа, от 0 до 59
second — представляемая секунда минуты, от 0 до 59
nanoOfSecond — представляемая наносекунда секунды, от 0 до 999,999,999
zone — часовой пояс, не null
Возвращает:
дату и время с часовым поясом, не null
Вызывает исключение:
DateTimeException — если значение какого-либо поля выходит за допустимый диапазон или день месяца недопустим для данного месяца и года

ofLocal

public static ZonedDateTime ofLocal(LocalDateTime localDateTime, ZoneId zone, ZoneOffset preferredOffset)
Создает экземпляр ZonedDateTime на основе локальных даты и времени, используя предпочтительное смещение, если это возможно.

Локальные дата и время преобразуются в единственный момент времени на временной шкале. Для этого находится допустимое смещение относительно UTC/Гринвича для локальных даты и времени, определяемое объектом rules идентификатора часового пояса.

В большинстве случаев для локальных даты и времени существует только одно допустимое смещение. При переходе на зимнее время, когда часы переводятся назад, допустимы два смещения. Если предпочтительное смещение является одним из допустимых, используется оно. В противном случае используется более раннее допустимое смещение, обычно соответствующее «летнему» времени.

При переходе на летнее время, когда часы переводятся вперед, допустимых смещений нет. В этом случае локальные дата и время сдвигаются вперед на длительность разрыва. При типичном переходе на летнее время с изменением на один час локальные дата и время будут сдвинуты на час вперед, к смещению, обычно соответствующему «летнему» времени.

Параметры:
localDateTime — локальные дата и время, не null
zone — часовой пояс, не null
preferredOffset — смещение часового пояса, null, если предпочтение не задано
Возвращает:
дату и время с часовым поясом, не null

ofInstant

public static ZonedDateTime ofInstant(Instant instant, ZoneId zone)
Создает экземпляр ZonedDateTime на основе Instant.

Создается дата и время с часовым поясом, соответствующие указанному моменту времени. Вызов ChronoZonedDateTime.toInstant() вернет момент времени, равный использованному здесь.

Преобразование момента времени в дату и время с часовым поясом несложно, поскольку для каждого момента времени существует только одно допустимое смещение.

Параметры:
instant — момент времени, на основе которого создаются дата и время, не null
zone — часовой пояс, не null
Возвращает:
дату и время с часовым поясом, не null
Вызывает исключение:
DateTimeException — если результат выходит за поддерживаемый диапазон

ofInstant

public static ZonedDateTime ofInstant(LocalDateTime localDateTime, ZoneOffset offset, ZoneId zone)
Создает экземпляр ZonedDateTime на основе момента времени, полученного объединением локальных даты и времени со смещением.

Создается дата и время с часовым поясом путем преобразования LocalDateTime и ZoneOffset в момент времени с помощью combining. Эта комбинация однозначно определяет момент времени.

Преобразование момента времени в дату и время с часовым поясом несложно, поскольку для каждого момента времени существует только одно допустимое смещение. Если допустимое смещение отличается от указанного, дата, время и смещение в дате и времени с часовым поясом будут отличаться от указанных.

Если используемый ZoneId является ZoneOffset, этот метод эквивалентен of(LocalDateTime, ZoneId).

Параметры:
localDateTime — локальные дата и время, не null
offset — смещение часового пояса, не null
zone — часовой пояс, не null
Возвращает:
дату и время с часовым поясом, не null

ofStrict

public static ZonedDateTime ofStrict(LocalDateTime localDateTime, ZoneOffset offset, ZoneId zone)
Создает экземпляр ZonedDateTime со строгой проверкой сочетания локальных даты и времени, смещения и идентификатора часового пояса.

Создается дата и время с часовым поясом, при этом проверяется допустимость смещения для локальных даты и времени согласно правилам указанного часового пояса. Если смещение недопустимо, выбрасывается исключение.

Параметры:
localDateTime — локальные дата и время, не null
offset — смещение часового пояса, не null
zone — часовой пояс, не null
Возвращает:
дату и время с часовым поясом, не null
Вызывает исключение:
DateTimeException — если сочетание аргументов недопустимо

from

public static ZonedDateTime from(TemporalAccessor temporal)
Создает экземпляр ZonedDateTime на основе временного объекта.

На основе указанного временного объекта создаются дата и время с часовым поясом. Объект TemporalAccessor представляет произвольный набор сведений о дате и времени, который эта фабрика преобразует в экземпляр ZonedDateTime.

При преобразовании сначала из временного объекта извлекается ZoneId, а при необходимости — ZoneOffset. Затем выполняется попытка получить Instant, а при необходимости — LocalDateTime. Результатом будет сочетание ZoneId или ZoneOffset с Instant или LocalDateTime. Реализациям разрешено выполнять оптимизацию, например обращаться к полям, эквивалентным соответствующим объектам.

Сигнатура этого метода соответствует функциональному интерфейсу TemporalQuery, что позволяет использовать его в качестве запроса через ссылку на метод ZonedDateTime::from.

Параметры:
temporal — преобразуемый временной объект, не null
Возвращает:
дату и время с часовым поясом, не null
Вызывает исключение:
DateTimeException — если преобразование в ZonedDateTime невозможно

parse

public static ZonedDateTime parse(CharSequence text)
Создает экземпляр ZonedDateTime из текстовой строки, например 2007-12-03T10:15:30+01:00[Europe/Paris].

Строка должна представлять допустимые дату и время; для ее разбора используется DateTimeFormatter.ISO_ZONED_DATE_TIME.

Параметры:
text — разбираемый текст, например "2007-12-03T10:15:30+01:00[Europe/Paris]", не null
Возвращает:
разобранные дату и время с часовым поясом, не null
Вызывает исключение:
DateTimeParseException — если текст не удается разобрать

parse

public static ZonedDateTime parse(CharSequence text, DateTimeFormatter formatter)
Создает экземпляр ZonedDateTime из текстовой строки с использованием указанного средства форматирования.

Текст разбирается с помощью средства форматирования, в результате чего возвращаются дата и время.

Параметры:
text — разбираемый текст, не null
formatter — используемое средство форматирования, не null
Возвращает:
разобранные дату и время с часовым поясом, не null
Вызывает исключение:
DateTimeParseException — если текст не удается разобрать

isSupported

public boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.

Проверяет, можно ли получить значение указанного поля для этих даты и времени. Если нет, вызовы методов range, get и with(TemporalField, long) приведут к выбросу исключения.

Если поле является ChronoField, проверка выполняется здесь. Поддерживаются следующие поля:

  • NANO_OF_SECOND
  • NANO_OF_DAY
  • MICRO_OF_SECOND
  • MICRO_OF_DAY
  • MILLI_OF_SECOND
  • MILLI_OF_DAY
  • SECOND_OF_MINUTE
  • SECOND_OF_DAY
  • MINUTE_OF_HOUR
  • MINUTE_OF_DAY
  • HOUR_OF_AMPM
  • CLOCK_HOUR_OF_AMPM
  • HOUR_OF_DAY
  • CLOCK_HOUR_OF_DAY
  • AMPM_OF_DAY
  • DAY_OF_WEEK
  • ALIGNED_DAY_OF_WEEK_IN_MONTH
  • ALIGNED_DAY_OF_WEEK_IN_YEAR
  • DAY_OF_MONTH
  • DAY_OF_YEAR
  • EPOCH_DAY
  • ALIGNED_WEEK_OF_MONTH
  • ALIGNED_WEEK_OF_YEAR
  • MONTH_OF_YEAR
  • PROLEPTIC_MONTH
  • YEAR_OF_ERA
  • YEAR
  • ERA
  • INSTANT_SECONDS
  • OFFSET_SECONDS
Для всех остальных экземпляров ChronoField будет возвращено false.

Если поле не является ChronoField, результат этого метода получается вызовом TemporalField.isSupportedBy(TemporalAccessor) с передачей this в качестве аргумента. Поддержка поля определяется самим полем.

Определено в:
isSupported в интерфейсе ChronoZonedDateTime<LocalDate>
Определено в:
isSupported в интерфейсе TemporalAccessor
Параметры:
field — проверяемое поле; для null возвращается false
Возвращает:
true, если поле поддерживается этими датой и временем; в противном случае false

isSupported

public boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица измерения.

Проверяет, можно ли прибавить указанную единицу измерения к этим дате и времени или вычесть ее из них. Если нет, вызовы методов plus(long, TemporalUnit) и minus приведут к выбросу исключения.

Если единица измерения является ChronoUnit, проверка выполняется здесь. Поддерживаются следующие единицы измерения:

  • NANOS
  • MICROS
  • MILLIS
  • SECONDS
  • MINUTES
  • HOURS
  • HALF_DAYS
  • DAYS
  • WEEKS
  • MONTHS
  • YEARS
  • DECADES
  • CENTURIES
  • MILLENNIA
  • ERAS
Для всех остальных экземпляров ChronoUnit будет возвращено false.

Если единица измерения не является ChronoUnit, результат этого метода получается вызовом TemporalUnit.isSupportedBy(Temporal) с передачей this в качестве аргумента. Поддержка единицы измерения определяется самой единицей.

Определено в:
isSupported в интерфейсе ChronoZonedDateTime<LocalDate>
Определено в:
isSupported в интерфейсе Temporal
Параметры:
unit — проверяемая единица измерения; для null возвращается false
Возвращает:
true, если единицу измерения можно прибавить или вычесть; в противном случае false

range

public ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.

Объект диапазона задает минимальное и максимальное допустимые значения поля. Эти дата и время используются для повышения точности возвращаемого диапазона. Если вернуть диапазон невозможно, поскольку поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле является ChronoField, проверка выполняется здесь. Метод supported fields вернет соответствующие экземпляры диапазона. Для всех остальных экземпляров ChronoField будет выброшено исключение UnsupportedTemporalTypeException.

Если поле не является ChronoField, результат этого метода получается вызовом TemporalField.rangeRefinedBy(TemporalAccessor) с передачей this в качестве аргумента. Возможность получить диапазон определяется самим полем.

Определено в:
range в интерфейсе TemporalAccessor
Параметры:
field — поле, диапазон которого требуется получить, не null
Возвращает:
диапазон допустимых значений поля, не null
Вызывает исключение:
DateTimeException — если диапазон значений поля невозможно получить
UnsupportedTemporalTypeException — если поле не поддерживается

get

public int get(TemporalField field)
Получает значение указанного поля из этих даты и времени в виде int.

Этот метод запрашивает значение указанного поля для этих даты и времени. Возвращаемое значение всегда будет находиться в допустимом диапазоне значений поля. Если вернуть значение невозможно, поскольку поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле является ChronoField, проверка выполняется здесь. Метод supported fields вернет допустимые значения на основе этих даты и времени, кроме NANO_OF_DAY, MICRO_OF_DAY, EPOCH_DAY, PROLEPTIC_MONTH и INSTANT_SECONDS, значения которых слишком велики для представления типом int и приводят к выбросу исключения UnsupportedTemporalTypeException. Для всех остальных экземпляров ChronoField будет выброшено исключение UnsupportedTemporalTypeException.

Если поле не является ChronoField, результат этого метода получается вызовом TemporalField.getFrom(TemporalAccessor) с передачей this в качестве аргумента. Возможность получить значение и его смысл определяются самим полем.

Определено в:
get в интерфейсе TemporalAccessor
Параметры:
field — поле, значение которого требуется получить, не null
Возвращает:
значение поля
Вызывает исключение:
DateTimeException — если значение поля невозможно получить или оно выходит за допустимый диапазон значений поля
UnsupportedTemporalTypeException — если поле не поддерживается или диапазон значений превышает int
ArithmeticException — при переполнении числового значения

getLong

public long getLong(TemporalField field)
Получает значение указанного поля из этих даты и времени в виде long.

Этот метод запрашивает значение указанного поля для этих даты и времени. Если вернуть значение невозможно, поскольку поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле является ChronoField, проверка выполняется здесь. Метод supported fields вернет допустимые значения на основе этих даты и времени. Для всех остальных экземпляров ChronoField будет выброшено исключение UnsupportedTemporalTypeException.

Если поле не является ChronoField, результат этого метода получается вызовом TemporalField.getFrom(TemporalAccessor) с передачей this в качестве аргумента. Возможность получить значение и его смысл определяются самим полем.

Определено в:
getLong в интерфейсе ChronoZonedDateTime<LocalDate>
Определено в:
getLong в интерфейсе TemporalAccessor
Параметры:
field — поле, значение которого требуется получить, не null
Возвращает:
значение поля
Вызывает исключение:
DateTimeException — если значение поля невозможно получить
UnsupportedTemporalTypeException — если поле не поддерживается
ArithmeticException — при переполнении числового значения

getOffset

public ZoneOffset getOffset()
Получает смещение часового пояса, например «+01:00».

Это смещение локальных даты и времени относительно UTC/Гринвича.

Определено в:
getOffset в интерфейсе ChronoZonedDateTime<LocalDate>
Возвращает:
смещение часового пояса, не null

withEarlierOffsetAtOverlap

public ZonedDateTime withEarlierOffsetAtOverlap()
Возвращает копию этих даты и времени, изменяя смещение часового пояса на более раннее из двух допустимых смещений при пересечении локальной временной шкалы.

Этот метод действует только при пересечении локальной временной шкалы, например при переходе на зимнее время осенью. В такой ситуации для локальных даты и времени допустимы два смещения. Вызов этого метода вернет дату и время с часовым поясом и выберет более раннее из двух смещений.

Если вызвать этот метод вне периода пересечения, будет возвращен this.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Определено в:
withEarlierOffsetAtOverlap в интерфейсе ChronoZonedDateTime<LocalDate>
Возвращает:
экземпляр ZonedDateTime на основе этих даты и времени с более ранним смещением, не null

withLaterOffsetAtOverlap

public ZonedDateTime withLaterOffsetAtOverlap()
Возвращает копию этих даты и времени, изменяя смещение часового пояса на более позднее из двух допустимых смещений при пересечении локальной временной шкалы.

Этот метод действует только при пересечении локальной временной шкалы, например при переходе на зимнее время осенью. В такой ситуации для локальных даты и времени допустимы два смещения. Вызов этого метода вернет дату и время с часовым поясом и выберет более позднее из двух смещений.

Если вызвать этот метод вне периода пересечения, будет возвращен this.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Определено в:
withLaterOffsetAtOverlap в интерфейсе ChronoZonedDateTime<LocalDate>
Возвращает:
экземпляр ZonedDateTime на основе этих даты и времени с более поздним смещением, не null

getZone

public ZoneId getZone()
Получает часовой пояс, например «Europe/Paris».

Возвращает идентификатор часового пояса. Он указывает на rules, определяющий, когда и как изменяется смещение относительно UTC/Гринвича.

Идентификатор часового пояса может совпадать со смещением. В этом случае будущие вычисления, например сложение или вычитание, не будут осложнены особыми случаями, связанными с правилами часового пояса. См. также withFixedOffsetZone().

Определено в:
getZone в интерфейсе ChronoZonedDateTime<LocalDate>
Возвращает:
часовой пояс, не null

withZoneSameLocal

public ZonedDateTime withZoneSameLocal(ZoneId zone)
Возвращает копию этих даты и времени с другим часовым поясом, по возможности сохраняя локальные дату и время.

Этот метод меняет часовой пояс и сохраняет локальные дату и время. Локальные дата и время меняются только в том случае, если они недопустимы в новом часовом поясе. При этом используется тот же подход, что и в методе ofLocal(LocalDateTime, ZoneId, ZoneOffset).

Чтобы изменить часовой пояс и скорректировать локальные дату и время, используйте withZoneSameInstant(ZoneId).

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Определено в:
withZoneSameLocal в интерфейсе ChronoZonedDateTime<LocalDate>
Параметры:
zone — новый часовой пояс, не null
Возвращает:
экземпляр ZonedDateTime на основе этих даты и времени с указанным часовым поясом, не null

withZoneSameInstant

public ZonedDateTime withZoneSameInstant(ZoneId zone)
Возвращает копию этой даты-времени с другим часовым поясом, сохраняя тот же момент времени.

Этот метод изменяет часовой пояс и сохраняет тот же момент времени. Обычно это приводит к изменению локальной даты-времени.

Этот метод сохраняет тот же момент времени, поэтому разрывы и перекрытия на локальной временной шкале не влияют на результат.

Чтобы изменить смещение, сохранив локальное время, используйте withZoneSameLocal(ZoneId).

Указано в:
withZoneSameInstant в интерфейсе ChronoZonedDateTime<LocalDate>
Параметры:
zone - часовой пояс, на который нужно изменить, не null
Возвращает:
ZonedDateTime на основе этой даты-времени с запрошенной зоной, не null
Вызывает исключения:
DateTimeException - если результат выходит за пределы поддерживаемого диапазона дат

withFixedOffsetZone

public ZonedDateTime withFixedOffsetZone()
Возвращает копию этой даты-времени, в которой идентификатор зоны установлен в значение смещения.

Возвращает дату-время с часовым поясом, идентификатор зоны которой совпадает с getOffset(). Локальная дата-время, смещение и момент времени результата будут такими же, как у этой даты-времени.

Фиксация даты-времени на одном постоянном смещении означает, что при любых последующих вычислениях, например при сложении или вычитании, не возникнут сложные граничные случаи, связанные с правилами часовых поясов. Это также может быть полезно при передаче даты-времени с часовым поясом по сети, поскольку большинство протоколов, например ISO-8601, поддерживают только смещения, но не идентификаторы зон на основе регионов.

Это эквивалентно ZonedDateTime.of(zdt.toLocalDateTime(), zdt.getOffset()).

Возвращает:
ZonedDateTime с идентификатором зоны, установленным в значение смещения, не null

toLocalDateTime

public LocalDateTime toLocalDateTime()
Возвращает часть этой даты-времени, содержащую LocalDateTime.

Возвращает LocalDateTime с теми же годом, месяцем, днём и временем, что и у этой даты-времени.

Указано в:
toLocalDateTime в интерфейсе ChronoZonedDateTime<LocalDate>
Возвращает:
часть этой даты-времени, содержащую локальные дату и время, не null

toLocalDate

public LocalDate toLocalDate()
Возвращает часть этой даты-времени, содержащую LocalDate.

Возвращает LocalDate с теми же годом, месяцем и днём, что и у этой даты-времени.

Указано в:
toLocalDate в интерфейсе ChronoZonedDateTime<LocalDate>
Возвращает:
часть этой даты-времени, содержащую дату, не null

getYear

public int getYear()
Возвращает значение поля года.

Этот метод возвращает значение года примитивного типа int.

Год, возвращаемый этим методом, является пролептическим согласно get(YEAR). Чтобы получить год эры, используйте get(YEAR_OF_ERA).

Возвращает:
год в диапазоне от MIN_YEAR до MAX_YEAR

getMonthValue

public int getMonthValue()
Возвращает значение поля месяца года в диапазоне от 1 до 12.

Этот метод возвращает месяц в виде значения типа int в диапазоне от 1 до 12. Код приложения часто становится понятнее, если использовать перечисление Month, вызвав getMonth().

Возвращает:
месяц года в диапазоне от 1 до 12
См. также:
  • getMonth()

getMonth

public Month getMonth()
Возвращает значение поля месяца года с помощью перечисления Month.

Этот метод возвращает перечисление Month для месяца. Это позволяет избежать путаницы относительно того, что означают значения int. Если требуется доступ к значению примитивного типа int, перечисление предоставляет метод int value.

Возвращает:
месяц года, не null
См. также:
  • getMonthValue()

getDayOfMonth

public int getDayOfMonth()
Возвращает значение поля дня месяца.

Этот метод возвращает значение дня месяца примитивного типа int.

Возвращает:
день месяца в диапазоне от 1 до 31

getDayOfYear

public int getDayOfYear()
Возвращает значение поля дня года.

Этот метод возвращает значение дня года примитивного типа int.

Возвращает:
день года в диапазоне от 1 до 365 или 366 в високосном году

getDayOfWeek

public DayOfWeek getDayOfWeek()
Возвращает значение поля дня недели, которое является перечислением DayOfWeek.

Этот метод возвращает перечисление DayOfWeek для дня недели. Это позволяет избежать путаницы относительно того, что означают значения int. Если требуется доступ к значению примитивного типа int, перечисление предоставляет метод int value.

Дополнительную информацию можно получить из DayOfWeek. В частности, там приведены текстовые названия значений.

Возвращает:
день недели, не null

toLocalTime

public LocalTime toLocalTime()
Возвращает часть этой даты-времени, содержащую LocalTime.

Возвращает LocalTime с теми же часом, минутой, секундой и наносекундой, что и у этой даты-времени.

Указано в:
toLocalTime в интерфейсе ChronoZonedDateTime<LocalDate>
Возвращает:
часть этой даты-времени, содержащую время, не null

getHour

public int getHour()
Возвращает значение поля часа дня.
Возвращает:
час дня в диапазоне от 0 до 23

getMinute

public int getMinute()
Возвращает значение поля минуты часа.
Возвращает:
минута часа в диапазоне от 0 до 59

getSecond

public int getSecond()
Возвращает значение поля секунды минуты.
Возвращает:
секунда минуты в диапазоне от 0 до 59

getNano

public int getNano()
Возвращает значение поля наносекунды секунды.
Возвращает:
наносекунда секунды в диапазоне от 0 до 999,999,999

with

public ZonedDateTime with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этой даты-времени.

Возвращает ZonedDateTime на основе текущего значения с скорректированной датой-временем. Корректировка выполняется с помощью указанного объекта стратегии-корректора. Ознакомьтесь с документацией корректора, чтобы понять, какая именно корректировка будет выполнена.

Простой корректор может просто установить значение одного из полей, например поля года. Более сложный корректор может установить дату на последний день месяца. Набор распространённых корректировок предоставляется в TemporalAdjusters. К ним относятся поиск «последнего дня месяца» и «следующей среды». Ключевые классы даты-времени также реализуют интерфейс TemporalAdjuster, например Month и MonthDay. Корректор отвечает за обработку особых случаев, таких как разная продолжительность месяцев и високосные годы.

Например, этот код возвращает дату, соответствующую последнему дню июля:

 import static java.time.Month.*;
 import static java.time.temporal.TemporalAdjusters.*;

 result = zonedDateTime.with(JULY).with(lastDayOfMonth());

Классы LocalDate и LocalTime реализуют TemporalAdjuster, поэтому этот метод можно использовать для изменения даты, времени или смещения:

 result = zonedDateTime.with(date);
 result = zonedDateTime.with(time);

ZoneOffset также реализует TemporalAdjuster, однако его использование в качестве аргумента обычно не приводит к эффекту. Смещение ZonedDateTime в первую очередь определяется часовым поясом. Поэтому изменение смещения обычно не имеет смысла, поскольку для локальной даты-времени и зоны существует только одно допустимое смещение. Если дата-время с часовым поясом находится в периоде перекрытия при переходе на летнее время, смещение используется для переключения между двумя допустимыми значениями. Во всех остальных случаях смещение игнорируется.

Результат этого метода получается вызовом метода TemporalAdjuster.adjustInto(Temporal) указанного корректора с передачей this в качестве аргумента.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Указано в:
with в интерфейсе ChronoZonedDateTime<LocalDate>
Указано в:
with в интерфейсе Temporal
Параметры:
adjuster - используемый корректор, не null
Возвращает:
ZonedDateTime на основе this с применённой корректировкой, не null
Вызывает исключения:
DateTimeException - если корректировку невозможно выполнить
ArithmeticException - при числовом переполнении

with

public ZonedDateTime with(TemporalField field, long newValue)
Возвращает копию этой даты-времени с указанным полем, которому присвоено новое значение.

Возвращает ZonedDateTime на основе текущего значения с изменённым значением указанного поля. Этот метод можно использовать для изменения любого поддерживаемого поля, например года, месяца или дня месяца. Если установить значение невозможно, поскольку поле не поддерживается или по другой причине, выбрасывается исключение.

В некоторых случаях изменение указанного поля может сделать результирующую дату-время недопустимой. Например, изменение месяца с января на февраль для 31 января сделает день месяца недопустимым. В таких случаях поле отвечает за корректировку даты. Как правило, выбирается предыдущая допустимая дата, то есть в данном примере последний допустимый день февраля.

Если поле является ChronoField, корректировка выполняется здесь.

Поле INSTANT_SECONDS вернёт дату-время с указанным моментом времени. Часовой пояс и наносекунда секунды останутся без изменений. Смещение результата будет получено из нового момента времени и исходной зоны. Если новое значение момента времени находится вне допустимого диапазона, будет выброшено исключение DateTimeException.

Поле OFFSET_SECONDS обычно игнорируется. Смещение ZonedDateTime в первую очередь определяется часовым поясом. Поэтому изменение смещения обычно не имеет смысла, поскольку для локальной даты-времени и зоны существует только одно допустимое смещение. Если дата-время с часовым поясом находится в периоде перекрытия при переходе на летнее время, смещение используется для переключения между двумя допустимыми значениями. Во всех остальных случаях смещение игнорируется. Если новое значение смещения находится вне допустимого диапазона, будет выброшено исключение DateTimeException.

Другие supported fields будут работать так же, как соответствующий метод в LocalDateTime. Часовой пояс не участвует в вычислении и останется без изменений. При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в периоде перекрытия, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если дата-время находится в периоде разрыва, локальная дата-время будет сдвинута вперёд на продолжительность разрыва.

Все остальные экземпляры ChronoField выбросят UnsupportedTemporalTypeException.

Если поле не является ChronoField, результат этого метода получается вызовом TemporalField.adjustInto(Temporal, long) с передачей this в качестве аргумента. В этом случае поле определяет, можно ли скорректировать момент времени и как именно это сделать.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Указано в:
with в интерфейсе ChronoZonedDateTime<LocalDate>
Указано в:
with в интерфейсе Temporal
Параметры:
field - поле, которое нужно установить в результате, не null
newValue - новое значение поля в результате
Возвращает:
ZonedDateTime на основе this с установленным указанным полем, не null
Вызывает исключения:
DateTimeException - если поле невозможно установить
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - при числовом переполнении

withYear

public ZonedDateTime withYear(int year)
Возвращает копию этого ZonedDateTime с изменённым годом.

Операция выполняется на локальной временной шкале: изменяется год локальной даты-времени с помощью метода changing the year. Затем результат преобразуется обратно в ZonedDateTime с использованием идентификатора зоны для получения смещения.

При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в периоде перекрытия, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если дата-время находится в периоде разрыва, локальная дата-время будет сдвинута вперёд на продолжительность разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
year - год, который нужно установить в результате, в диапазоне от MIN_YEAR до MAX_YEAR
Возвращает:
ZonedDateTime на основе этой даты-времени с запрошенным годом, не null
Вызывает исключения:
DateTimeException - если значение года недопустимо

withMonth

public ZonedDateTime withMonth(int month)
Возвращает копию этого ZonedDateTime с изменённым месяцем года.

Операция выполняется на локальной временной шкале: изменяется месяц локальной даты-времени с помощью метода changing the month. Затем результат преобразуется обратно в ZonedDateTime с использованием идентификатора зоны для получения смещения.

При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в периоде перекрытия, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если дата-время находится в периоде разрыва, локальная дата-время будет сдвинута вперёд на продолжительность разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
month - месяц года, который нужно установить в результате, от 1 (январь) до 12 (декабрь)
Возвращает:
ZonedDateTime на основе этой даты-времени с запрошенным месяцем, не null
Вызывает исключения:
DateTimeException - если значение месяца года недопустимо

withDayOfMonth

public ZonedDateTime withDayOfMonth(int dayOfMonth)
Возвращает копию этого ZonedDateTime с изменённым днём месяца.

Операция выполняется на локальной временной шкале: изменяется день локальной даты-времени с помощью метода changing the day-of-month. Затем результат преобразуется обратно в ZonedDateTime с использованием идентификатора зоны для получения смещения.

При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в периоде перекрытия, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если дата-время находится в периоде разрыва, локальная дата-время будет сдвинута вперёд на продолжительность разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
dayOfMonth - день месяца, который нужно установить в результате, в диапазоне от 1 до 28-31
Возвращает:
ZonedDateTime на основе этой даты-времени с запрошенным днём, не null
Вызывает исключения:
DateTimeException - если значение дня месяца недопустимо или день месяца недопустим для данного месяца и года

withDayOfYear

public ZonedDateTime withDayOfYear(int dayOfYear)
Возвращает копию этого ZonedDateTime с изменённым днём года.

Операция выполняется на локальной временной шкале: изменяется день локальной даты-времени с помощью метода changing the day-of-year. Затем результат преобразуется обратно в ZonedDateTime с использованием идентификатора зоны для получения смещения.

При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в периоде перекрытия, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если дата-время находится в периоде разрыва, локальная дата-время будет сдвинута вперёд на продолжительность разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
dayOfYear - день года, который нужно установить в результате, в диапазоне от 1 до 365-366
Возвращает:
ZonedDateTime на основе этой даты с запрошенным днём, не null
Вызывает исключения:
DateTimeException - если значение дня года недопустимо или день года недопустим для данного года

withHour

public ZonedDateTime withHour(int hour)
Возвращает копию этого ZonedDateTime с изменённым часом дня.

Операция выполняется на локальной временной шкале: изменяется время локальной даты-времени. Затем результат преобразуется обратно в ZonedDateTime с использованием идентификатора зоны для получения смещения.

При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в периоде перекрытия, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если дата-время находится в периоде разрыва, локальная дата-время будет сдвинута вперёд на продолжительность разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
hour - час дня, который нужно установить в результате, в диапазоне от 0 до 23
Возвращает:
ZonedDateTime на основе этой даты-времени с запрошенным часом, не null
Вызывает исключения:
DateTimeException - если значение часа недопустимо

withMinute

public ZonedDateTime withMinute(int minute)
Возвращает копию этого ZonedDateTime с изменённой минутой часа.

Операция выполняется на локальной временной шкале: изменяется время локальной даты-времени. Затем результат преобразуется обратно в ZonedDateTime с использованием идентификатора зоны для получения смещения.

При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в периоде перекрытия, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если дата-время находится в периоде разрыва, локальная дата-время будет сдвинута вперёд на продолжительность разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
minute - минута часа, которую нужно установить в результате, в диапазоне от 0 до 59
Возвращает:
ZonedDateTime на основе этой даты-времени с запрошенной минутой, не null
Вызывает исключения:
DateTimeException - если значение минуты недопустимо

withSecond

public ZonedDateTime withSecond(int second)
Возвращает копию этого ZonedDateTime с изменённой секундой минуты.

Операция выполняется на локальной временной шкале: изменяется время локальной даты-времени. Затем результат преобразуется обратно в ZonedDateTime с использованием идентификатора зоны для получения смещения.

При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в периоде перекрытия, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если дата-время находится в периоде разрыва, локальная дата-время будет сдвинута вперёд на продолжительность разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
second - секунда минуты, которую нужно установить в результате, в диапазоне от 0 до 59
Возвращает:
ZonedDateTime на основе этой даты-времени с запрошенной секундой, не null
Вызывает исключения:
DateTimeException - если значение секунды недопустимо

withNano

public ZonedDateTime withNano(int nanoOfSecond)
Возвращает копию этого ZonedDateTime с изменённой наносекундой секунды.

Операция выполняется на локальной временной шкале: изменяется время локальной даты-времени. Затем результат преобразуется обратно в ZonedDateTime с использованием идентификатора зоны для получения смещения.

При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в периоде перекрытия, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если дата-время находится в периоде разрыва, локальная дата-время будет сдвинута вперёд на продолжительность разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
nanoOfSecond - наносекунда секунды, которую нужно установить в результате, в диапазоне от 0 до 999,999,999
Возвращает:
ZonedDateTime на основе этой даты-времени с запрошенной наносекундой, не null
Вызывает исключения:
DateTimeException - если значение наносекунды недопустимо

truncatedTo

public ZonedDateTime truncatedTo(TemporalUnit unit)
Возвращает копию этого ZonedDateTime с усечённым временем.

Усечение возвращает копию исходной даты-времени, в которой поля меньшей точности, чем указанная единица измерения, установлены в ноль. Например, усечение до единицы minutes установит поля секунды минуты и наносекунды секунды в ноль.

Длительность единицы измерения должна делить продолжительность стандартного дня без остатка. К таким единицам относятся все предоставляемые единицы времени из ChronoUnit и DAYS. Для остальных единиц будет выброшено исключение.

Операция выполняется на локальной временной шкале: усекается базовая локальная дата-время с помощью метода truncating. Затем результат преобразуется обратно в ZonedDateTime с использованием идентификатора зоны для получения смещения.

При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в периоде перекрытия, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если дата-время находится в периоде разрыва, локальная дата-время будет сдвинута вперёд на продолжительность разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
unit - единица измерения, до которой нужно усечь, не null
Возвращает:
ZonedDateTime на основе этой даты-времени с усечённым временем, не null
Вызывает исключения:
DateTimeException - если усечение невозможно
UnsupportedTemporalTypeException - если единица измерения не поддерживается

plus

public ZonedDateTime plus(TemporalAmount amountToAdd)
Возвращает копию этой даты-времени с добавленной указанной величиной.

Возвращает ZonedDateTime на основе текущего значения с добавленной указанной величиной. Обычно этой величиной является Period или Duration, но это может быть и любой другой тип, реализующий интерфейс TemporalAmount.

Вычисление делегируется объекту величины вызовом метода TemporalAmount.addTo(Temporal). Реализация величины может выполнять сложение любым способом, однако обычно она вызывает plus(long, TemporalUnit). Обратитесь к документации реализации величины, чтобы узнать, можно ли успешно выполнить сложение.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Указано в:
plus в интерфейсе ChronoZonedDateTime<LocalDate>
Указано в:
plus в интерфейсе Temporal
Параметры:
amountToAdd - добавляемая величина, не null
Возвращает:
ZonedDateTime на основе этой даты-времени с выполненным сложением, не null
Вызывает исключения:
DateTimeException - если сложение невозможно выполнить
ArithmeticException - при числовом переполнении

plus

public ZonedDateTime plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этой даты-времени с добавленной указанной величиной.

Возвращает ZonedDateTime на основе текущего значения с добавленной величиной в указанной единице измерения. Если добавить величину невозможно, поскольку единица измерения не поддерживается или по другой причине, выбрасывается исключение.

Если поле является ChronoUnit, сложение выполняется здесь. Часовой пояс не участвует в вычислении и не изменится в результате. Вычисления для единиц даты и времени различаются.

Единицы даты действуют на локальной временной шкале. Сначала период добавляется к локальной дате-времени, затем результат преобразуется обратно в дату-время с часовым поясом с использованием идентификатора зоны. При преобразовании используется ofLocal(LocalDateTime, ZoneId, ZoneOffset) со смещением, заданным до сложения.

Единицы времени действуют на временной шкале момента времени. Сначала период добавляется к локальной дате-времени, затем результат преобразуется обратно в дату-время с часовым поясом с использованием идентификатора зоны. При преобразовании используется ofInstant(LocalDateTime, ZoneOffset, ZoneId) со смещением, заданным до сложения.

Если поле не является ChronoUnit, результат этого метода получается вызовом TemporalUnit.addTo(Temporal, long) с передачей this в качестве аргумента. В этом случае единица измерения определяет, можно ли выполнить сложение и как именно его выполнить.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Указано в:
plus в интерфейсе ChronoZonedDateTime<LocalDate>
Указано в:
plus в интерфейсе Temporal
Параметры:
amountToAdd - величина в единицах измерения, добавляемая к результату; может быть отрицательной
unit - единица измерения добавляемой величины, не null
Возвращает:
ZonedDateTime на основе этой даты-времени с добавленной указанной величиной, не null
Вызывает исключения:
DateTimeException - если сложение невозможно выполнить
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - при числовом переполнении

plusYears

public ZonedDateTime plusYears(long years)
Возвращает копию этого ZonedDateTime с добавленным указанным количеством лет.

Операция выполняется на локальной временной шкале: к локальным дате и времени применяется adding years. Затем результат преобразуется обратно в ZonedDateTime; для получения смещения используется идентификатор часового пояса.

При обратном преобразовании в ZonedDateTime, если локальные дата и время попадают в перекрытие, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если они попадают в разрыв, локальные дата и время будут переведены вперёд на длину разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
years — количество добавляемых лет; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с добавленными годами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusMonths

public ZonedDateTime plusMonths(long months)
Возвращает копию этого ZonedDateTime с добавленным указанным количеством месяцев.

Операция выполняется на локальной временной шкале: к локальным дате и времени применяется adding months. Затем результат преобразуется обратно в ZonedDateTime; для получения смещения используется идентификатор часового пояса.

При обратном преобразовании в ZonedDateTime, если локальные дата и время попадают в перекрытие, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если они попадают в разрыв, локальные дата и время будут переведены вперёд на длину разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
months — количество добавляемых месяцев; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с добавленными месяцами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusWeeks

public ZonedDateTime plusWeeks(long weeks)
Возвращает копию этого ZonedDateTime с добавленным указанным количеством недель.

Операция выполняется на локальной временной шкале: к локальным дате и времени применяется adding weeks. Затем результат преобразуется обратно в ZonedDateTime; для получения смещения используется идентификатор часового пояса.

При обратном преобразовании в ZonedDateTime, если локальные дата и время попадают в перекрытие, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если они попадают в разрыв, локальные дата и время будут переведены вперёд на длину разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
weeks — количество добавляемых недель; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с добавленными неделями; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusDays

public ZonedDateTime plusDays(long days)
Возвращает копию этого ZonedDateTime с добавленным указанным количеством дней.

Операция выполняется на локальной временной шкале: к локальным дате и времени применяется adding days. Затем результат преобразуется обратно в ZonedDateTime; для получения смещения используется идентификатор часового пояса.

При обратном преобразовании в ZonedDateTime, если локальные дата и время попадают в перекрытие, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если они попадают в разрыв, локальные дата и время будут переведены вперёд на длину разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
days — количество добавляемых дней; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с добавленными днями; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusHours

public ZonedDateTime plusHours(long hours)
Возвращает копию этого ZonedDateTime с добавленным указанным количеством часов.

Операция выполняется на шкале моментов времени, поэтому добавление одного часа всегда означает увеличение длительности на один час. При этом локальные дата и время могут измениться на величину, отличную от одного часа. Обратите внимание: этот подход отличается от подхода, используемого для дней, месяцев и лет, поэтому добавление одного дня не эквивалентно добавлению 24 часов.

Например, рассмотрим часовой пояс, такой как 'Europe/Paris', где при осеннем переходе на зимнее время локальное время с 02:00 до 02:59 встречается дважды, а смещение меняется с +02:00 летом на +01:00 зимой.

  • Прибавление одного часа к 01:30+02:00 даст 02:30+02:00 (оба значения относятся к летнему времени)
  • Прибавление одного часа к 02:30+02:00 даст 02:30+01:00 (переход с летнего времени на зимнее)
  • Прибавление одного часа к 02:30+01:00 даст 03:30+01:00 (оба значения относятся к зимнему времени)
  • Прибавление трёх часов к 01:30+02:00 даст 03:30+01:00 (переход с летнего времени на зимнее)

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
hours — количество добавляемых часов; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с добавленными часами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusMinutes

public ZonedDateTime plusMinutes(long minutes)
Возвращает копию этого ZonedDateTime с добавленным указанным количеством минут.

Операция выполняется на шкале моментов времени, поэтому добавление одной минуты всегда означает увеличение длительности на одну минуту. При этом локальные дата и время могут измениться на величину, отличную от одной минуты. Обратите внимание: этот подход отличается от подхода, используемого для дней, месяцев и лет.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
minutes — количество добавляемых минут; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с добавленными минутами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusSeconds

public ZonedDateTime plusSeconds(long seconds)
Возвращает копию этого ZonedDateTime с добавленным указанным количеством секунд.

Операция выполняется на шкале моментов времени, поэтому добавление одной секунды всегда означает увеличение длительности на одну секунду. При этом локальные дата и время могут измениться на величину, отличную от одной секунды. Обратите внимание: этот подход отличается от подхода, используемого для дней, месяцев и лет.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
seconds — количество добавляемых секунд; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с добавленными секундами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusNanos

public ZonedDateTime plusNanos(long nanos)
Возвращает копию этого ZonedDateTime с добавленным указанным количеством наносекунд.

Операция выполняется на шкале моментов времени, поэтому добавление одной наносекунды всегда означает увеличение длительности на одну наносекунду. При этом локальные дата и время могут измениться на величину, отличную от одной наносекунды. Обратите внимание: этот подход отличается от подхода, используемого для дней, месяцев и лет.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
nanos — количество добавляемых наносекунд; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с добавленными наносекундами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minus

public ZonedDateTime minus(TemporalAmount amountToSubtract)
Возвращает копию этих даты и времени с вычтенным указанным интервалом.

Возвращает ZonedDateTime на основе этого значения, из которого вычтен указанный интервал. Обычно интервалом является Period или Duration, но им может быть любой другой тип, реализующий интерфейс TemporalAmount.

Вычисление делегируется объекту интервала вызовом метода TemporalAmount.subtractFrom(Temporal). Реализация интервала может выполнять вычитание любым желаемым способом, однако обычно она вызывает minus(long, TemporalUnit). Ознакомьтесь с документацией реализации интервала, чтобы определить, можно ли успешно вычесть его.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Указано в:
minus в интерфейсе ChronoZonedDateTime<LocalDate>
Указано в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract — вычитаемый интервал; значение не может быть null
Возвращает:
ZonedDateTime на основе этих даты и времени с выполненным вычитанием; значение не может быть null
Исключения:
DateTimeException — если вычитание невозможно
ArithmeticException — при числовом переполнении

minus

public ZonedDateTime minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этих даты и времени с вычтенным указанным интервалом.

Возвращает ZonedDateTime на основе этого значения, из которого вычтен интервал, заданный в единицах измерения. Если вычесть интервал невозможно, поскольку единица измерения не поддерживается или по какой-либо иной причине, генерируется исключение.

Вычисления для единиц даты и времени различаются.

Единицы даты обрабатываются на локальной временной шкале. Сначала период вычитается из локальных даты и времени, затем результат преобразуется обратно в дату и время с часовым поясом с использованием идентификатора часового пояса. При преобразовании используется ofLocal(LocalDateTime, ZoneId, ZoneOffset) со смещением, заданным до вычитания.

Единицы времени обрабатываются на шкале моментов времени. Сначала период вычитается из локальных даты и времени, затем результат преобразуется обратно в дату и время с часовым поясом с использованием идентификатора часового пояса. При преобразовании используется ofInstant(LocalDateTime, ZoneOffset, ZoneId) со смещением, заданным до вычитания.

Этот метод эквивалентен методу plus(long, TemporalUnit) с отрицательным значением интервала. Полное описание работы сложения и, следовательно, вычитания см. в документации этого метода.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Указано в:
minus в интерфейсе ChronoZonedDateTime<LocalDate>
Указано в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract — количество единиц, вычитаемых из результата; значение может быть отрицательным
unit — единица измерения вычитаемого интервала; значение не может быть null
Возвращает:
ZonedDateTime на основе этих даты и времени с вычтенным указанным интервалом; значение не может быть null
Исключения:
DateTimeException — если вычитание невозможно
UnsupportedTemporalTypeException — если единица измерения не поддерживается
ArithmeticException — при числовом переполнении

minusYears

public ZonedDateTime minusYears(long years)
Возвращает копию этого ZonedDateTime с вычтенным указанным количеством лет.

Операция выполняется на локальной временной шкале: к локальным дате и времени применяется subtracting years. Затем результат преобразуется обратно в ZonedDateTime; для получения смещения используется идентификатор часового пояса.

При обратном преобразовании в ZonedDateTime, если локальные дата и время попадают в перекрытие, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если они попадают в разрыв, локальные дата и время будут переведены вперёд на длину разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
years — количество вычитаемых лет; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с вычтенными годами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minusMonths

public ZonedDateTime minusMonths(long months)
Возвращает копию этого ZonedDateTime с вычтенным указанным количеством месяцев.

Операция выполняется на локальной временной шкале: к локальным дате и времени применяется subtracting months. Затем результат преобразуется обратно в ZonedDateTime; для получения смещения используется идентификатор часового пояса.

При обратном преобразовании в ZonedDateTime, если локальные дата и время попадают в перекрытие, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если они попадают в разрыв, локальные дата и время будут переведены вперёд на длину разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
months — количество вычитаемых месяцев; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с вычтенными месяцами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minusWeeks

public ZonedDateTime minusWeeks(long weeks)
Возвращает копию этого ZonedDateTime с вычтенным указанным количеством недель.

Операция выполняется на локальной временной шкале: к локальным дате и времени применяется subtracting weeks. Затем результат преобразуется обратно в ZonedDateTime; для получения смещения используется идентификатор часового пояса.

При обратном преобразовании в ZonedDateTime, если локальные дата и время попадают в перекрытие, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если они попадают в разрыв, локальные дата и время будут переведены вперёд на длину разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
weeks — количество вычитаемых недель; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с вычтенными неделями; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minusDays

public ZonedDateTime minusDays(long days)
Возвращает копию этого ZonedDateTime с вычтенным указанным количеством дней.

Операция выполняется на локальной временной шкале: к локальным дате и времени применяется subtracting days. Затем результат преобразуется обратно в ZonedDateTime; для получения смещения используется идентификатор часового пояса.

При обратном преобразовании в ZonedDateTime, если локальные дата и время попадают в перекрытие, смещение будет сохранено, если это возможно; в противном случае будет использовано более раннее смещение. Если они попадают в разрыв, локальные дата и время будут переведены вперёд на длину разрыва.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
days — количество вычитаемых дней; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с вычтенными днями; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minusHours

public ZonedDateTime minusHours(long hours)
Возвращает копию этого ZonedDateTime с вычтенным указанным количеством часов.

Операция выполняется на шкале моментов времени, поэтому вычитание одного часа всегда означает уменьшение длительности на один час. При этом локальные дата и время могут измениться на величину, отличную от одного часа. Обратите внимание: этот подход отличается от подхода, используемого для дней, месяцев и лет, поэтому вычитание одного дня не эквивалентно прибавлению 24 часов.

Например, рассмотрим часовой пояс, такой как 'Europe/Paris', где при осеннем переходе на зимнее время локальное время с 02:00 до 02:59 встречается дважды, а смещение меняется с +02:00 летом на +01:00 зимой.

  • Вычитание одного часа из 03:30+01:00 даст 02:30+01:00 (оба значения относятся к зимнему времени)
  • Вычитание одного часа из 02:30+01:00 даст 02:30+02:00 (переход с зимнего времени на летнее)
  • Вычитание одного часа из 02:30+02:00 даст 01:30+02:00 (оба значения относятся к летнему времени)
  • Вычитание трёх часов из 03:30+01:00 даст 01:30+02:00 (переход с зимнего времени на летнее)

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
hours — количество вычитаемых часов; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с вычтенными часами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minusMinutes

public ZonedDateTime minusMinutes(long minutes)
Возвращает копию этого ZonedDateTime с вычтенным указанным количеством минут.

Операция выполняется на шкале моментов времени, поэтому вычитание одной минуты всегда означает уменьшение длительности на одну минуту. При этом локальные дата и время могут измениться на величину, отличную от одной минуты. Обратите внимание: этот подход отличается от подхода, используемого для дней, месяцев и лет.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
minutes — количество вычитаемых минут; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с вычтенными минутами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minusSeconds

public ZonedDateTime minusSeconds(long seconds)
Возвращает копию этого ZonedDateTime с вычтенным указанным количеством секунд.

Операция выполняется на шкале моментов времени, поэтому вычитание одной секунды всегда означает уменьшение длительности на одну секунду. При этом локальные дата и время могут измениться на величину, отличную от одной секунды. Обратите внимание: этот подход отличается от подхода, используемого для дней, месяцев и лет.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
seconds — количество вычитаемых секунд; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с вычтенными секундами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minusNanos

public ZonedDateTime minusNanos(long nanos)
Возвращает копию этого ZonedDateTime с вычтенным указанным количеством наносекунд.

Операция выполняется на шкале моментов времени, поэтому вычитание одной наносекунды всегда означает уменьшение длительности на одну наносекунду. При этом локальные дата и время могут измениться на величину, отличную от одной наносекунды. Обратите внимание: этот подход отличается от подхода, используемого для дней, месяцев и лет.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Параметры:
nanos — количество вычитаемых наносекунд; значение может быть отрицательным
Возвращает:
ZonedDateTime на основе этих даты и времени с вычтенными наносекундами; значение не может быть null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

query

public <R> R query(TemporalQuery<R> query)
Выполняет запрос к этим дате и времени с помощью указанного запроса.

Запрос к этим дате и времени выполняется с помощью указанного объекта стратегии запроса. Объект TemporalQuery определяет логику получения результата. Ознакомьтесь с документацией запроса, чтобы понять, каким будет результат этого метода.

Результат этого метода получается вызовом метода TemporalQuery.queryFrom(TemporalAccessor) для указанного запроса с передачей this в качестве аргумента.

Указано в:
query в интерфейсе ChronoZonedDateTime<LocalDate>
Указано в:
query в интерфейсе TemporalAccessor
Параметры типа:
R — тип результата
Параметры:
query — вызываемый запрос; значение не может быть null
Возвращает:
результат запроса; может быть возвращено значение null (определяется запросом)
Исключения:
DateTimeException — если выполнить запрос невозможно (определяется запросом)
ArithmeticException — при числовом переполнении (определяется запросом)

until

public long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет время до других даты и времени в указанной единице измерения.

Вычисляет интервал времени между двумя объектами ZonedDateTime в единицах одной TemporalUnit. Начальной и конечной точками являются this и указанные дата и время. Результат будет отрицательным, если конечная точка предшествует начальной. Например, интервал в днях между двумя датами и временем можно вычислить с помощью startDateTime.until(endDateTime, DAYS).

Переданный этому методу объект Temporal преобразуется в ZonedDateTime с помощью from(TemporalAccessor). Если часовые пояса двух дат и времени с часовыми поясами различаются, указанные конечные дата и время нормализуются так, чтобы их часовой пояс совпадал с часовым поясом этих даты и времени.

Вычисление возвращает целое число, представляющее количество полных единиц между двумя датами и временем. Например, интервал в месяцах между 2012-06-15T00:00Z и 2012-08-14T23:59Z составляет только один месяц, поскольку до истечения двух месяцев не хватает одной минуты.

Этот метод можно использовать двумя эквивалентными способами. Первый — вызвать данный метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):

  // these two lines are equivalent
  amount = start.until(end, MONTHS);
  amount = MONTHS.between(start, end);
Выбор следует делать исходя из того, какой вариант делает код более читаемым.

Этот метод реализует вычисление для ChronoUnit. Поддерживаются единицы NANOS, MICROS, MILLIS, SECONDS, MINUTES, HOURS и HALF_DAYS, DAYS, WEEKS, MONTHS, YEARS, DECADES, CENTURIES, MILLENNIA и ERAS. Для других значений ChronoUnit будет выброшено исключение.

Вычисления для единиц даты и времени различаются.

Единицы даты обрабатываются на локальной временной шкале с использованием локальных даты и времени. Например, интервал от полудня первого дня до полудня следующего дня всегда будет равен ровно одному дню в днях, независимо от того, произошёл ли переход на летнее время.

Единицы времени обрабатываются на шкале моментов времени. Фактически при вычислении обе даты и времени с часовыми поясами преобразуются в моменты времени, после чего вычисляется интервал между этими моментами. Например, интервал от полудня первого дня до полудня следующего дня может составлять 23, 24 или 25 часов (либо другое количество) в зависимости от того, произошёл ли переход на летнее время.

Если единица не является ChronoUnit, результат этого метода получается вызовом TemporalUnit.between(Temporal, Temporal) с передачей this в качестве первого аргумента, а преобразованного входного временного объекта — в качестве второго аргумента.

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Указано в:
until в интерфейсе Temporal
Параметры:
endExclusive — конечная дата, не включаемая в интервал; преобразуется в ZonedDateTime; значение не может быть null
unit — единица измерения интервала; значение не может быть null
Возвращает:
время между этими датой и временем и конечными датой и временем
Исключения:
DateTimeException — если интервал невозможно вычислить или конечный временной объект нельзя преобразовать в ZonedDateTime
UnsupportedTemporalTypeException — если единица измерения не поддерживается
ArithmeticException — при числовом переполнении

format

public String format(DateTimeFormatter formatter)
Форматирует эти дату и время с помощью указанного форматтера.

Эти дата и время будут переданы форматтеру для создания строки.

Указано в:
format в интерфейсе ChronoZonedDateTime<LocalDate>
Параметры:
formatter — используемый форматтер; значение не может быть null
Возвращает:
отформатированная строка даты и времени; значение не может быть null
Исключения:
DateTimeException — если при форматировании произошла ошибка

toOffsetDateTime

public OffsetDateTime toOffsetDateTime()
Преобразует эти дату и время в OffsetDateTime.

Создаёт дату и время со смещением, используя локальные дату и время и смещение. Идентификатор часового пояса игнорируется.

Возвращает:
дата и время со смещением, представляющие те же локальные дату и время и смещение; значение не может быть null

equals

public boolean equals(Object obj)
Проверяет, равны ли эти дата и время другим дате и времени.

Сравнение выполняется по дате и времени со смещением и часовому поясу. Сравниваются только объекты типа ZonedDateTime; для объектов других типов возвращается false.

Указано в:
equals в интерфейсе ChronoZonedDateTime<LocalDate>
Переопределяет:
equals в классе Object
Параметры:
obj — проверяемый объект; для null возвращается false
Возвращает:
true, если это значение равно другим дате и времени
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хеш-код этих даты и времени.
Указано в:
hashCode в интерфейсе ChronoZonedDateTime<LocalDate>
Переопределяет:
hashCode в классе Object
Возвращает:
подходящий хеш-код
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

toString

public String toString()
Выводит эту дату и время в виде String, например 2007-12-03T10:15:30+01:00[Europe/Paris].

Формат состоит из результата вызова LocalDateTime.toString(), за которым следует результат вызова ZoneOffset.toString(). Если значение секунд и/или наносекунд равно нулю, оно не выводится, чтобы получить кратчайшее представление. Если ZoneId не совпадает со смещением, выводится идентификатор. Вывод совместим с ISO-8601, если смещение и идентификатор совпадают, а количество секунд в смещении равно нулю.

Определено в:
toString в интерфейсе ChronoZonedDateTime<LocalDate>
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этой даты и времени, не null

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, где содержатся более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API