Spec-Zone.ru › OpenJDK 24

Класс 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. Получение смещения для мгновенного момента времени просто, так как для каждого мгновенного момента времени существует ровно одно допустимое смещение. В противоположность этому, получение смещения для локальной даты и времени не является простым. Существует три случая:

  • Нормальный случай, с одним допустимым смещением. В подавляющем большинстве случаев применяется нормальный случай, когда для локальной даты и времени существует одно допустимое смещение.
  • Пробел (Gap), с нулевыми допустимыми смещениями. Это происходит, когда часы перепрыгивают вперёд, как правило, из-за перехода на летнее время весной. В случае пробела локальные даты и время не имеют допустимого смещения.
  • Перекрытие (Overlap), с двумя допустимыми смещениями. Это происходит, когда часы переводятся назад, обычно из-за перехода на зимнее время осенью. В случае перекрытия локальные даты и время имеют два допустимых смещения.

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

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

Для перекрытий (Overlaps) общая стратегия заключается в том, что если локальная дата и время попадают в середину перекрытия, то сохраняется предыдущее смещение. Если нет предыдущего смещения или предыдущее смещение недопустимо, то используется более раннее смещение, как правило, «летнее» время. Два дополнительных метода, 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)
Возвращает копию этого момента даты и времени с другим часовым поясом, сохраняя локальное время даты и времени, если это возможно.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

compareTo, getChronology, isAfter, isBefore, isEqual, toEpochSecond, toInstant

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

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 из момента времени, образованного путём объединения локальной даты и времени с смещением.

Это создаёт временную зону путём combining локальной даты и времени и смещения. Это объединение однозначно определяет момент времени без неоднозначности.

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

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

Parameters:
localDateTime - локальная дата и время, не null
offset - смещение зоны, не null
zone - часовой пояс, не null
Returns:
временная зона, не null

ofStrict

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

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

Parameters:
localDateTime - локальная дата и время, не null
offset - смещение зоны, не null
zone - часовой пояс, не null
Returns:
временная зона, не null
Throws:
DateTimeException - если комбинация аргументов недопустима

from

public static ZonedDateTime from(TemporalAccessor temporal)
Получает экземпляр ZonedDateTime из временного объекта.

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

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

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

Parameters:
temporal - временной объект для преобразования, не null
Returns:
временная зона, не null
Throws:
DateTimeException - если невозможно преобразовать в ZonedDateTime

parse

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

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

Parameters:
text - текст для разбора, такой как "2007-12-03T10:15:30+01:00[Europe/Paris]", не null
Returns:
разбор временной зоны, не null
Throws:
DateTimeParseException - если текст невозможно разобрать

parse

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

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

Parameters:
text - текст для разбора, не null
formatter - используемый форматер, не null
Returns:
разбор временной зоны, не null
Throws:
DateTimeParseException - если текст невозможно разобрать

isSupported

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

Проверяет, можно ли запросить эту дату и время для указанного поля. Если false, вызов методов 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 в качестве аргумента. Поддерживается ли поле определяется полем.

Specified by:
isSupported в интерфейсе ChronoZonedDateTime<LocalDate>
Specified by:
isSupported в интерфейсе TemporalAccessor
Parameters:
field - поле для проверки, null возвращает false
Returns:
true, если поле поддерживается в этой дате и времени, false - если нет

isSupported

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

Это проверяет, можно ли добавить или вычесть указанную единицу измерения времени из этой даты и времени. Если false, то вызов методов 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 в качестве аргумента. Поддерживается ли единица измерения времени определяется единицей измерения.

Specified by:
isSupported в интерфейсе ChronoZonedDateTime<LocalDate>
Specified by:
isSupported в интерфейсе Temporal
Parameters:
unit - единица измерения времени для проверки, null возвращает false
Returns:
true, если единица измерения времени может быть добавлена/вычтена, false - если нет

range

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

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

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

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

Specified by:
range в интерфейсе TemporalAccessor
Parameters:
field - поле для запроса диапазона, не null
Returns:
диапазон допустимых значений для поля, не null
Throws:
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 - если происходит переполнение чисел

с

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

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

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

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

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

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

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

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

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

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

Specified by:
with в интерфейсе ChronoZonedDateTime<LocalDate>
Specified by:
with в интерфейсе Temporal
Parameters:
field - поле, которое нужно установить в результате, не null
newValue - новое значение поля в результате
Returns:
объект ZonedDateTime, основанный на this с установленным указанным полем, не null
Throws:
DateTimeException - если поле не может быть установлено
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение чисел

сГодом

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

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

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

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

Parameters:
year - год для установки в результате, от MIN_YEAR до MAX_YEAR
Returns:
объект ZonedDateTime, основанный на этом объекте DateTime с запрошенным годом, не null
Throws:
DateTimeException - если значение года недействительно

сМесяцем

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

Этот метод работает с локальной временной шкалой, changing the month локальной даты-времени. Затем это преобразуется обратно в объект ZonedDateTime, используя идентификатор часового пояса для получения смещения.

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

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

Parameters:
month - месяц для установки в результате, от 1 (январь) до 12 (декабрь)
Returns:
объект ZonedDateTime, основанный на этом объекте DateTime с запрошенным месяцем, не null
Throws:
DateTimeException - если значение месяца недействительно

сДнёмМесяца

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

Этот метод работает с локальной временной шкалой, changing the day-of-month локальной даты-времени. Затем это преобразуется обратно в объект ZonedDateTime, используя идентификатор часового пояса для получения смещения.

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

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

Parameters:
dayOfMonth - день месяца для установки в результате, от 1 до 28-31
Returns:
объект ZonedDateTime, основанный на этом объекте DateTime с запрошенным днём, не null
Throws:
DateTimeException - если значение дня месяца недействительно или если день месяца недействителен для данного месяца

сДнёмГода

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

Этот метод работает с локальной временной шкалой, changing the day-of-year локальной даты-времени. Затем это преобразуется обратно в объект ZonedDateTime, используя идентификатор часового пояса для получения смещения.

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

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

Parameters:
dayOfYear - день года для установки в результате, от 1 до 365-366
Returns:
объект ZonedDateTime, основанный на этой дате с запрошенным днём, не null
Throws:
DateTimeException - если значение дня года недействительно или если день года недействителен для данного года

сЧасом

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

Этот метод работает с локальной временной шкалой, изменяя время локальной даты-времени. Затем это преобразуется обратно в объект ZonedDateTime, используя идентификатор часового пояса для получения смещения.

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

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

Parameters:
hour - час для установки в результате, от 0 до 23
Returns:
объект ZonedDateTime, основанный на этом объекте DateTime с запрошенным часом, не null
Throws:
DateTimeException - если значение часа недействительно

сМинутой

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

Этот метод работает с локальной временной шкалой, изменяя время локальной даты-времени. Затем это преобразуется обратно в объект ZonedDateTime, используя идентификатор часового пояса для получения смещения.

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

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

Parameters:
minute - минута для установки в результате, от 0 до 59
Returns:
объект ZonedDateTime, основанный на этом объекте DateTime с запрошенной минутой, не null
Throws:
DateTimeException - если значение минуты недействительно

сВторыми

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

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

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

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

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

сНаносекундами

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

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

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

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

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

обрезанноеДо

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

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

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

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

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

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

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

плюс

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 - если происходит переполнение числовых данных

плюс

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 - если происходит переполнение числовых данных

плюсГоды

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

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

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

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

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

плюсМесяцы

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', где осеннее переключение DST означает, что локальные времена с 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, если локальное время находится в перекрытии, смещение сохраняется, если это возможно, в противном случае используется более раннее смещение. Если находится в разрыве, локальное время будет скорректировано вперед на длину разрыва.

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

Parameters:
years - годы для вычитания, может быть отрицательным
Returns:
a ZonedDateTime, основанный на этом времени с вычтенными годами, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minusMonths

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

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

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

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

Parameters:
months - количество месяцев для вычитания, может быть отрицательным
Returns:
a ZonedDateTime, основанный на этом времени с вычтенными месяцами, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minusWeeks

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

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

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

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

Parameters:
weeks - недели для вычитания, может быть отрицательным
Returns:
a ZonedDateTime, основанный на этом времени с вычтенными неделями, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minusDays

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

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

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

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

Parameters:
days - дни для вычитания, может быть отрицательным
Returns:
a ZonedDateTime, основанный на этом времени с вычтенными днями, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minusHours

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

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

Например, рассмотрим часовой пояс, такой как 'Europe/Paris', где осеннее переключение DST означает, что местные времена с 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 (переход от зимнего к летнему времени)

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

Parameters:
hours - часы для вычитания, может быть отрицательным
Returns:
a ZonedDateTime, основанный на этом времени с вычтенными часами, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minusMinutes

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

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

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

Parameters:
minutes - минуты для вычитания, может быть отрицательным
Returns:
a ZonedDateTime, основанный на этом времени с вычтенными минутами, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minusSeconds

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

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

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

Parameters:
seconds - секунды для вычитания, может быть отрицательным
Returns:
a ZonedDateTime, основанный на этом времени с вычтенными секундами, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minusNanos

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

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

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

Parameters:
nanos - наносекунды для вычитания, может быть отрицательным
Returns:
a ZonedDateTime, основанный на этом времени с вычтенными наносекундами, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

query

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

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

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

Specified by:
query in interface ChronoZonedDateTime<LocalDate>
Specified by:
query in interface TemporalAccessor
Type Parameters:
R - тип результата
Parameters:
query - запрос для вызова, не null
Returns:
результат запроса, может быть null (определяется запросом)
Throws:
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 в качестве первого аргумента и преобразованный входной временной объект в качестве второго аргумента.

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

Specified by:
until в интерфейсе Temporal
Parameters:
endExclusive - конечная дата, исключая, которая преобразуется в ZonedDateTime, не null
unit - единица измерения для измерения величины, не null
Returns:
разница во времени между этой датой и временем и конечной датой и временем
Throws:
DateTimeException - если величина не может быть рассчитана или конечная временная метка не может быть преобразована в ZonedDateTime
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - если происходит переполнение числовых значений

format

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

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

Specified by:
format в интерфейсе ChronoZonedDateTime<LocalDate>
Parameters:
formatter - используемый форматтер, не null
Returns:
строка отформатированной даты и времени, не null
Throws:
DateTimeException - если при печати произошла ошибка

toOffsetDateTime

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

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

Returns:
смещенная дата и время, представляющая ту же локальную дату и время и смещение, не null

equals

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

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

Specified by:
equals в интерфейсе ChronoZonedDateTime<LocalDate>
Overrides:
equals в классе Object
Parameters:
obj - объект для проверки, null возвращает false
Returns:
true, если это равно другой дате и времени
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хеш-код для этой даты и времени.
Specified by:
hashCode в интерфейсе ChronoZonedDateTime<LocalDate>
Overrides:
hashCode в классе Object
Returns:
подходящий хеш-код
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

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

Формат состоит из LocalDateTime, за которым следует ZoneOffset. Если ZoneId не совпадает со смещением, то выводится ID. Вывод совместим с ISO-8601, если смещение и ID совпадают, а секунды в смещении равны нулю.

Specified by:
toString в интерфейсе ChronoZonedDateTime<LocalDate>
Overrides:
toString в классе Object
Returns:
строковое представление этой даты и времени, не null

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/ZonedDateTime.html

Spec-Zone.ru

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