Spec-Zone.ru › OpenJDK 8

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

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

ZonedDateTime with(TemporalAdjuster adjuster)

Вычисляет количество времени до другой даты-времени в терминах указанной единицы.

ZonedDateTime with(TemporalField field, long newValue)

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

ZonedDateTime withDayOfMonth(int dayOfMonth)

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

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, timeLineOrder, toEpochSecond, toInstant

Методы

now

public static ZonedDateTime now()

Получает текущую дату и время с системных часов в часовом поясе по умолчанию.

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

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

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

now

public static ZonedDateTime now(ZoneId zone)

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

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

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

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

now

public static ZonedDateTime now(Clock clock)

Получает текущую дату и время из указанных часов.

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

Использование этого метода позволяет использовать альтернативные часы для тестирования. Альтернативные часы могут быть введены с помощью dependency injection.

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

of

public static ZonedDateTime of(LocalDate date,
                               LocalTime time,
                               ZoneId zone)

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

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

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

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

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

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

of

public static ZonedDateTime of(LocalDateTime localDateTime,
                               ZoneId zone)

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

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

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

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

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

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

of

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

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

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

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

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

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

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

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

ofLocal

public static ZonedDateTime ofLocal(LocalDateTime localDateTime,
                                    ZoneId zone,
                                    ZoneOffset preferredOffset)

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

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

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

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

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

ofInstant

public static ZonedDateTime ofInstant(Instant instant,
                                      ZoneId zone)

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

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

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

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

ofInstant

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

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

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

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

Если используемый 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

from

public static ZonedDateTime from(TemporalAccessor temporal)

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

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

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

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

Specified by:
from в интерфейсе ChronoZonedDateTime<LocalDate>
Parameters:
temporal - временной объект для преобразования, не null
Returns:
зонированная дата и время, не null
Throws:
DateTimeException - если преобразование в ZonedDateTime невозможно
See Also:
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.

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

parse

public static ZonedDateTime parse(CharSequence text,
                                  DateTimeFormatter formatter)

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

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

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

isSupported

public boolean isSupported(TemporalField field)

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

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

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

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

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

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

isSupported

public boolean isSupported(TemporalUnit unit)

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

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

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

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

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

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

range

public ValueRange range(TemporalField field)

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

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

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

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

Specified by:
range в интерфейсе ChronoZonedDateTime<LocalDate>
Specified by:
range в интерфейсе TemporalAccessor
Parameters:
field - поле, для которого запрашивается диапазон, не null
Returns:
диапазон допустимых значений для поля, не null
Throws:
DateTimeException - если диапазон для поля получить нельзя
UnsupportedTemporalTypeException - если поле не поддерживается

get

public int get(TemporalField field)

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

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

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

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

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

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

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

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

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

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

withLaterOffsetAtOverlap

public ZonedDateTime withLaterOffsetAtOverlap()

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

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

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

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

Определено в:
withLaterOffsetAtOverlap в интерфейсе ChronoZonedDateTime<LocalDate>
Возвращает:
a 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
Возвращает:
a ZonedDateTime на основе этой даты и времени с запрошенным часовым поясом, не null

withZoneSameInstant

public ZonedDateTime withZoneSameInstant(ZoneId zone)

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

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

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

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

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

withFixedOffsetZone

public ZonedDateTime withFixedOffsetZone()

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

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

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

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

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

withYear

public ZonedDateTime withYear(int year)

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

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

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

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

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

withMonth

public ZonedDateTime withMonth(int month)

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

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

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

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

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

withDayOfMonth

public ZonedDateTime withDayOfMonth(int dayOfMonth)

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

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

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

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

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

withDayOfYear

public ZonedDateTime withDayOfYear(int dayOfYear)

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

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

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

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

Параметры:
dayOfYear - день года для установки в результате, от 1 до 365-366
Возвращает:
скопированная дата с указанным днём, не 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 часов.

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

  • Добавление одного часа к 00:30+02:00 даст 01:30+02:00
  • Добавление одного часа к 01:30+02:00 даст 01:30+01:00
  • Добавление одного часа к 01:30+01:00 даст 02:30+01:00
  • Добавление трёх часов к 00:30+02:00 даст 02: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 часов.

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

  • Вычитание одного часа из 02:30+01:00 даст 01:30+02:00
  • Вычитание одного часа из 01:30+01:00 даст 01:30+02:00
  • Вычитание одного часа из 01:30+02:00 даст 00:30+01:00
  • Вычитание трёх часов из 02:30+01:00 даст 00: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(java.lang.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

© 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.

Spec-Zone.ru

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