Spec-Zone.ru › OpenJDK 25

Класс ZonedDateTime

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ofStrict

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

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

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

from

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

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

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

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

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

parse

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

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

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

parse

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

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

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

isSupported

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

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

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

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

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

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

isSupported

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

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

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

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

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

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

range

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

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

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

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

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

get

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

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

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

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

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

getLong

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

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

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

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

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

getOffset

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

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

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

withEarlierOffsetAtOverlap

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

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

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

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

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

withLaterOffsetAtOverlap

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

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

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

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

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

getZone

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

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

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

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

withZoneSameLocal

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

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

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

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

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

withZoneSameInstant

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

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

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

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

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

withFixedOffsetZone

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

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

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

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

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

toLocalDateTime

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

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

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

toLocalDate

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

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

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

getYear

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

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

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

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

getMonthValue

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

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

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

getMonth

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

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

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

getDayOfMonth

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

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

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

getDayOfYear

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

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

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

getDayOfWeek

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

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

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

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

toLocalTime

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

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

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

getHour

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

getMinute

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

getSecond

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

getNano

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

with

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

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

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

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

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

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

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

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

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

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

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

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

with

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

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

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

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

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

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

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

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

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

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

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

withYear

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

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

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

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

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

withMonth

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

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

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

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

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

withDayOfMonth

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

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

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

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

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

withDayOfYear

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

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

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

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

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

withHour

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

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

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

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

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

withMinute

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

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

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

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

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

withSecond

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

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

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

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

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

withNano

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

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

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

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

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

truncatedTo

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

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

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

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

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

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

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

plus

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

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

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

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

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

plus

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

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

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

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

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

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

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

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

plusYears

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

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

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

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

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

plusMonths

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

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

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

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

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

plusWeeks

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

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

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

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

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

plusDays

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

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

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

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

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

plusHours

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

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

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

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

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

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

plusMinutes

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

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

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

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

plusSeconds

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

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

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

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

plusNanos

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

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

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

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

minus

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

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

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

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

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

minus

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

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

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

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

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

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

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

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

minusYears

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

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

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

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

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

minusMonths

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

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

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

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

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

minusWeeks

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

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

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

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

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

minusDays

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

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

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

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

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

minusHours

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

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

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

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

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

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

minusMinutes

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

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

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

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

minusSeconds

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

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

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

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

minusNanos

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

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

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

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

query

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

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

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

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

until

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

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

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

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

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

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

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

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

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

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

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

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

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

format

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

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

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

toOffsetDateTime

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

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

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

equals

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

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

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

hashCode

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

toString

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

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

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

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

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/ZonedDateTime.html

Spec-Zone.ru

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