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

Это значениями класс; использование операций, чувствительных к идентификатору (включая равенство ссылок (==), хэш-код идентификатора или синхронизацию) на экземплярах ZonedDateTime может привести к непредсказуемым результатам и следует избегать. Для сравнений следует использовать метод 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 из локальной даты и времени.

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

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

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

В случае разрыва, когда часы переводятся вперёд, допустимого смещения нет. Вместо этого локальная дата и время корректируются, чтобы быть позже на длительность разрыва. Для типичного перевода часов вперёд на один час, локальная дата и время будут сдвинуты на один час позже в смещение, обычно соответствующее "лету".

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

of

public static ZonedDateTime of(LocalDateTime localDateTime,
                               ZoneId zone)

Получает экземпляр ZonedDateTime из локальной даты и времени.

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

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

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

В случае разрыва, когда часы переводятся вперёд, допустимого смещения нет. Вместо этого локальная дата и время корректируются, чтобы быть позже на длительность разрыва. Для типичного перевода часов вперёд на один час, локальная дата и время будут сдвинуты на один час позже в смещение, обычно соответствующее "лету".

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

of

public static ZonedDateTime of(int year,
                               int month,
                               int dayOfMonth,
                               int hour,
                               int minute,
                               int second,
                               int nanoOfSecond,
                               ZoneId zone)

Получает экземпляр ZonedDateTime из года, месяца, дня, часа, минуты, секунды, наносекунды и часового пояса.

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

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

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

В случае разрыва, когда часы переводятся вперёд, допустимого смещения нет. Вместо этого локальная дата и время корректируются, чтобы быть позже на длительность разрыва. Для типичного перевода часов вперёд на один час, локальная дата и время будут сдвинуты на один час позже в смещение, обычно соответствующее "лету".

Этот метод существует в первую очередь для написания тестовых случаев. Нетестовый код обычно использует другие методы для создания смещённого времени. LocalDateTime имеет пять дополнительных удобных вариантов эквивалентного фабричного метода с меньшим количеством аргументов. Они не предоставляются здесь для уменьшения footprint 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, если нет предпочтений
Возвращает:
объект zoned date-time, не null

ofInstant

public static ZonedDateTime ofInstant(Instant instant,
                                      ZoneId zone)

Получает экземпляр ZonedDateTime из Instant.

Это создаёт объект zoned date-time с тем же мгновением, что и указано. Вызов ChronoZonedDateTime.toInstant() вернёт мгновение, равное тому, которое использовалось здесь.

Преобразование мгновения в объект zoned date-time простое, так как для каждого мгновения существует только одно допустимое смещение.

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

ofInstant

public static ZonedDateTime ofInstant(LocalDateTime localDateTime,
                                      ZoneOffset offset,
                                      ZoneId zone)

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

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

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

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

Параметры:
localDateTime - локальная дата и время, не null
offset - смещение часового пояса, не null
zone - часовой пояс, не null
Возвращает:
объект zoned date-time, не null

ofStrict

public static ZonedDateTime ofStrict(LocalDateTime localDateTime,
                                     ZoneOffset offset,
                                     ZoneId zone)

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

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

Параметры:
localDateTime - локальное время и дата, не null
offset - смещение зоны, не null
zone - часовой пояс, не null
Возвращает:
объект zoned date-time, не null
Выбрасывает:
DateTimeException - если комбинация аргументов некорректна

from

public static ZonedDateTime from(TemporalAccessor temporal)

Получает экземпляр ZonedDateTime из временного объекта.

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

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

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

Параметры:
temporal - временной объект для преобразования, не null
Возвращает:
объект zoned date-time, не null
Выбрасывает:
DateTimeException - если невозможно преобразовать во временной объект ZonedDateTime
См. также:
Chronology.zonedDateTime(TemporalAccessor)

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
Возвращает:
разложенное значение zoned date-time, не null
Выбрасывает:
DateTimeParseException - если текст не может быть проанализирован

parse

public static ZonedDateTime parse(CharSequence text,
                                  DateTimeFormatter formatter)

Получает экземпляр ZonedDateTime из текстовой строки с использованием определённого формата.

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

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

isSupported

public boolean isSupported(TemporalField field)

Проверяет, поддерживается ли указанное поле.

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

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

isSupported

public boolean isSupported(TemporalUnit unit)

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

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

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

range

public ValueRange range(TemporalField field)

Получает диапазон допустимых значений для указанного поля.

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

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

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

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

get

public int get(TemporalField field)

Получает значение указанного поля из zoned date-time в виде int.

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

Если поле является ChronoField, то запрос выполняется здесь. supported fields вернёт допустимые значения, основанные на этом объекте zoned date-time, за исключением 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 в интерфейсе 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
Возвращает:
a 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 - новое значение поля в результате
Возвращает:
a ZonedDateTime на основе this с установленным указанным полем, не null
Исключения:
DateTimeException - если поле не может быть установлено
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если произошёл переполнение чисел

withYear

public ZonedDateTime withYear(int year)

Возвращает копию этого ZonedDateTime с изменённым годом.

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

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

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

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

withMonth

public ZonedDateTime withMonth(int month)

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

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

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

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

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

withDayOfMonth

public ZonedDateTime withDayOfMonth(int dayOfMonth)

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

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

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

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

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

withDayOfYear

public ZonedDateTime withDayOfYear(int dayOfYear)

Возвращает копию этого ZonedDateTime с изменённым днём года.

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

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

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

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

withHour

public ZonedDateTime withHour(int hour)

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

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

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

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

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

withMinute

public ZonedDateTime withMinute(int minute)

Возвращает копию этого ZonedDateTime с изменённой минутой.

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

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

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

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

withSecond

public ZonedDateTime withSecond(int second)

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

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

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

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

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

withNano

public ZonedDateTime withNano(int nanoOfSecond)

Возвращает копию этого ZonedDateTime с изменённым наносекундами.

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

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

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

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

truncatedTo

public ZonedDateTime truncatedTo(TemporalUnit unit)

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

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

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

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

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

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

Параметры:
unit - единица для усечения, не null
Возвращает:
a 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
Возвращает:
a 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
Возвращает:
a ZonedDateTime на основе этой даты и времени с добавленным указанным значением, не null
Использует исключения:
DateTimeException - если добавление невозможно
UnsupportedTemporalTypeException - если единица не поддерживается
ArithmeticException - если произошел переполнение числовых значений

plusYears

public ZonedDateTime plusYears(long years)

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

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

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

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

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

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

Параметры:
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', где осеннее переключение 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 (переход от зимнего к летнему времени)

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

Параметры:
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. Точками отсчета являются начальная точка и указанная дата и время. Результат будет отрицательным, если конечная точка предшествует начальной. Например, разницу во времени между двумя датами и временами в днях можно рассчитать с помощью 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 не совпадает со смещением, выводится идентификатор. Вывод совместим с ISO-8601, если смещение и идентификатор совпадают.

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

© 1993, 2020, 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://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/ZonedDateTime.html

Spec-Zone .ru
спецификации, руководства, описания, API