Класс 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) | Получает экземпляр |
int | get(TemporalField field) | Получает значение указанного поля из этой даты-времени как |
int | getDayOfMonth() | Получает поле дня месяца. |
DayOfWeek | getDayOfWeek() | Получает поле дня недели, которое является перечислением |
int | getDayOfYear() | Получает поле дня года. |
int | getHour() | Получает поле часа дня. |
long | getLong(TemporalField field) | Получает значение указанного поля из этой даты-времени как |
int | getMinute() | Получает поле минуты часа. |
Month | getMonth() | Получает поле месяца года, используя перечисление |
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 | minusHours(long hours) | Возвращает копию этой |
ZonedDateTime | minusMinutes(long minutes) | Возвращает копию этой |
ZonedDateTime | minusMonths(long months) | Возвращает копию этой |
ZonedDateTime | minusNanos(long nanos) | Возвращает копию этой |
ZonedDateTime | minusSeconds(long seconds) | Возвращает копию этой |
ZonedDateTime | minusWeeks(long weeks) | Возвращает копию этой |
ZonedDateTime | minusYears(long years) | Возвращает копию этой |
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) | Получает экземпляр |
static ZonedDateTime | of(LocalDate date,
LocalTime time,
ZoneId zone) | Получает экземпляр |
static ZonedDateTime | of(LocalDateTime localDateTime,
ZoneId zone) | Получает экземпляр |
static ZonedDateTime | ofInstant(Instant instant,
ZoneId zone) | Получает экземпляр |
static ZonedDateTime | ofInstant(LocalDateTime localDateTime,
ZoneOffset offset,
ZoneId zone) | Получает экземпляр |
static ZonedDateTime | ofLocal(LocalDateTime localDateTime,
ZoneId zone,
ZoneOffset preferredOffset) | Получает экземпляр |
static ZonedDateTime | ofStrict(LocalDateTime localDateTime,
ZoneOffset offset,
ZoneId zone) | Получает экземпляр |
static ZonedDateTime | parse(CharSequence text) | Получает экземпляр |
static ZonedDateTime | parse(CharSequence text,
DateTimeFormatter formatter) | Получает экземпляр |
ZonedDateTime | plus(long amountToAdd,
TemporalUnit unit) | Возвращает копию этой даты-времени с добавлением указанного значения. |
ZonedDateTime | plus(TemporalAmount amountToAdd) | Возвращает копию этой даты-времени с добавлением указанного значения. |
ZonedDateTime | plusDays(long days) | Возвращает копию этой |
ZonedDateTime | plusHours(long hours) | Возвращает копию этой |
ZonedDateTime | plusMinutes(long minutes) | Возвращает копию этой |
ZonedDateTime | plusMonths(long months) | Возвращает копию этой |
ZonedDateTime | plusNanos(long nanos) | Возвращает копию этой |
ZonedDateTime | plusSeconds(long seconds) | Возвращает копию этой |
ZonedDateTime | plusWeeks(long weeks) | Возвращает копию этой |
ZonedDateTime | plusYears(long years) | Возвращает копию этой |
<R> R | query(TemporalQuery<R> query) | Запрашивает эту дату-время с использованием указанного запроса. |
ValueRange | range(TemporalField field) | Получает диапазон допустимых значений для указанного поля. |
LocalDate | toLocalDate() | Получает часть |
LocalDateTime | toLocalDateTime() | Получает часть |
LocalTime | toLocalTime() | Получает часть |
OffsetDateTime | toOffsetDateTime() | Преобразует эту дату-время в |
String | toString() | Выводит эту дату-время как |
ZonedDateTime | truncatedTo(TemporalUnit unit) | Возвращает копию этой |
long | until(Temporal endExclusive,
TemporalUnit unit) | Вычисляет время до другой даты и времени в указанных единицах. |
|---|---|---|
ZonedDateTime | with(TemporalAdjuster adjuster) | Возвращает скорректированную копию этой даты и времени. |
ZonedDateTime | with(TemporalField field,
long newValue) | Возвращает копию этой даты и времени с указанным полем, установленным на новое значение. |
ZonedDateTime | withDayOfMonth(int dayOfMonth) | Возвращает копию этой |
ZonedDateTime | withDayOfYear(int dayOfYear) | Возвращает копию этой |
ZonedDateTime | withEarlierOffsetAtOverlap() | Возвращает копию этой даты и времени, изменяя смещение часового пояса на более раннее из двух допустимых смещений при перекрытии временных линий. |
ZonedDateTime | withFixedOffsetZone() | Возвращает копию этой даты и времени с установленным идентификатором часового пояса на смещение. |
ZonedDateTime | withHour(int hour) | Возвращает копию этой |
ZonedDateTime | withLaterOffsetAtOverlap() | Возвращает копию этой даты и времени, изменяя смещение часового пояса на более позднее из двух допустимых смещений при перекрытии временных линий. |
ZonedDateTime | withMinute(int minute) | Возвращает копию этой |
ZonedDateTime | withMonth(int month) | Возвращает копию этой |
ZonedDateTime | withNano(int nanoOfSecond) | Возвращает копию этой |
ZonedDateTime | withSecond(int second) | Возвращает копию этой |
ZonedDateTime | withYear(int year) | Возвращает копию этой |
ZonedDateTime | withZoneSameInstant(ZoneId zone) | Возвращает копию этой даты и времени с другим часовым поясом, сохраняя момент времени. |
ZonedDateTime | withZoneSameLocal(ZoneId zone) | Возвращает копию этой даты и времени с другим часовым поясом, сохраняя локальное время, если это возможно. |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Методы, объявленные в интерфейсе java.time.chrono.ChronoZonedDateTime
compareTo, getChronology, isAfter, isBefore, isEqual, toEpochSecond, toInstant Методы
now
public static ZonedDateTime now()
Получает текущую дату и время из системных часов в часовом поясе по умолчанию.
Это запросит system clock в часовом поясе по умолчанию, чтобы получить текущую дату и время. Часовой пояс и смещение будут установлены на основе часового пояса в часах.
Использование этого метода предотвратит возможность использования альтернационных часов для тестирования, так как часы закодированы жестко.
- Возвращает:
- текущую дату и время с использованием системных часов, не null
now
public static ZonedDateTime now(ZoneId zone)
Получает текущую дату и время из системных часов в указанном часовом поясе.
Это запросит system clock, чтобы получить текущую дату и время. Указание часового пояса избегает зависимости от часового пояса по умолчанию. Смещение будет вычислено из указанного часового пояса.
Использование этого метода предотвратит возможность использования альтернационных часов для тестирования, так как часы закодированы жестко.
- Параметры:
-
zone- идентификатор часового пояса для использования, не null - Возвращает:
- текущую дату и время с использованием системных часов, не null
now
public static ZonedDateTime now(Clock clock)
Получает текущую дату и время из указанных часов.
Это запросит указанные часы, чтобы получить текущую дату и время. Часовой пояс и смещение будут установлены на основе часового пояса в часах.
Использование этого метода позволяет использовать альтернационные часы для тестирования. Альтернативные часы могут быть введены с помощью dependency injection.
- Параметры:
-
clock- часы для использования, не null - Возвращает:
- текущую дату и время, не null
of
public static ZonedDateTime of(LocalDate date,
LocalTime time,
ZoneId zone) Получает экземпляр ZonedDateTime из локальной даты и времени.
Это создаёт объект zoned date-time, соответствующий введённой локальной дате и времени, насколько это возможно. Правила часового пояса, такие как летнее время, означают, что не каждая локальная дата и время являются допустимыми для указанного часового пояса, поэтому локальная дата и время могут быть скорректированы.
Локальная дата и время объединяются для образования локальной даты и времени. Затем локальная дата и время разрешаются в единственный момент на временной шкале. Это достигается путём нахождения допустимого смещения от UTC/Гринвича для локальной даты и времени, как определено в rules идентификатора часового пояса.
В большинстве случаев существует только одно допустимое смещение для локальной даты и времени. В случае перекрытия, когда часы переводятся назад, существует два допустимых смещения. Этот метод использует более раннее смещение, обычно соответствующее "лету".
В случае разрыва, когда часы переводятся вперёд, допустимого смещения нет. Вместо этого локальная дата и время корректируются, чтобы быть позже на длительность разрыва. Для типичного перевода часов вперёд на один час, локальная дата и время будут сдвинуты на один час позже в смещение, обычно соответствующее "лету".
- Параметры:
-
date- локальная дата, не null -
time- локальное время, не null -
zone- часовой пояс, не null - Возвращает:
- смещённая дата и время, не null
of
public static ZonedDateTime of(LocalDateTime localDateTime,
ZoneId zone) Получает экземпляр ZonedDateTime из локальной даты и времени.
Это создаёт объект zoned date-time, соответствующий введённой локальной дате и времени, насколько это возможно. Правила часового пояса, такие как летнее время, означают, что не каждая локальная дата и время являются допустимыми для указанного часового пояса, поэтому локальная дата и время могут быть скорректированы.
Локальная дата и время разрешаются в единственный момент на временной шкале. Это достигается путём нахождения допустимого смещения от UTC/Гринвича для локальной даты и времени, как определено в rules идентификатора часового пояса.
В большинстве случаев существует только одно допустимое смещение для локальной даты и времени. В случае перекрытия, когда часы переводятся назад, существует два допустимых смещения. Этот метод использует более раннее смещение, обычно соответствующее "лету".
В случае разрыва, когда часы переводятся вперёд, допустимого смещения нет. Вместо этого локальная дата и время корректируются, чтобы быть позже на длительность разрыва. Для типичного перевода часов вперёд на один час, локальная дата и время будут сдвинуты на один час позже в смещение, обычно соответствующее "лету".
- Параметры:
-
localDateTime- локальная дата и время, не null -
zone- часовой пояс, не null - Возвращает:
- объект zoned date-time, не null
of
public static ZonedDateTime of(int year,
int month,
int dayOfMonth,
int hour,
int minute,
int second,
int nanoOfSecond,
ZoneId zone) Получает экземпляр ZonedDateTime из года, месяца, дня, часа, минуты, секунды, наносекунды и часового пояса.
Это создаёт объект zoned date-time, соответствующий введённой локальной дате и времени по семи указанным полям, насколько это возможно. Правила часового пояса, такие как летнее время, означают, что не каждая локальная дата и время являются допустимыми для указанного часового пояса, поэтому локальная дата и время могут быть скорректированы.
Локальная дата и время разрешаются в единственный момент на временной шкале. Это достигается путём нахождения допустимого смещения от UTC/Гринвича для локальной даты и времени, как определено в rules идентификатора часового пояса.
В большинстве случаев существует только одно допустимое смещение для локальной даты и времени. В случае перекрытия, когда часы переводятся назад, существует два допустимых смещения. Этот метод использует более раннее смещение, обычно соответствующее "лету".
В случае разрыва, когда часы переводятся вперёд, допустимого смещения нет. Вместо этого локальная дата и время корректируются, чтобы быть позже на длительность разрыва. Для типичного перевода часов вперёд на один час, локальная дата и время будут сдвинуты на один час позже в смещение, обычно соответствующее "лету".
Этот метод существует в первую очередь для написания тестовых случаев. Нетестовый код обычно использует другие методы для создания смещённого времени. LocalDateTime имеет пять дополнительных удобных вариантов эквивалентного фабричного метода с меньшим количеством аргументов. Они не предоставляются здесь для уменьшения footprint API.
- Параметры:
-
year- год для представления, от MIN_YEAR до MAX_YEAR -
month- месяц для представления, от 1 (январь) до 12 (декабрь) -
dayOfMonth- день месяца для представления, от 1 до 31 -
hour- час для представления, от 0 до 23 -
minute- минута для представления, от 0 до 59 -
second- секунда для представления, от 0 до 59 -
nanoOfSecond- наносекунда для представления, от 0 до 999 999 999 -
zone- часовой пояс, не null - Возвращает:
- смещённая дата и время, не null
- Выбрасывает:
-
DateTimeException- если значение любого поля выходит за пределы диапазона или если день месяца недопустим для месяца и года
ofLocal
public static ZonedDateTime ofLocal(LocalDateTime localDateTime,
ZoneId zone,
ZoneOffset preferredOffset) Получает экземпляр ZonedDateTime из локальной даты и времени, используя предпочтительное смещение, если возможно.
Локальная дата и время разрешаются в единственный момент на временной шкале. Это достигается путём нахождения допустимого смещения от UTC/Гринвича для локальной даты и времени, как определено в rules идентификатора часового пояса.
В большинстве случаев существует только одно допустимое смещение для локальной даты и времени. В случае перекрытия, когда часы переводятся назад, существуют два допустимых смещения. Если предпочтительное смещение является одним из допустимых смещений, то оно используется. В противном случае используется более раннее допустимое смещение, обычно соответствующее "лету".
В случае разрыва, когда часы переводятся вперёд, допустимого смещения нет. Вместо этого локальная дата и время корректируются, чтобы быть позже на длительность разрыва. Для типичного перевода часов вперёд на один час, локальная дата и время будут сдвинуты на один час позже в смещение, обычно соответствующее "лету".
- Параметры:
-
localDateTime- локальная дата и время, не null -
zone- часовой пояс, не null -
preferredOffset- смещение часового пояса, null, если нет предпочтений - Возвращает:
- объект zoned date-time, не null
ofInstant
public static ZonedDateTime ofInstant(Instant instant,
ZoneId zone) Получает экземпляр ZonedDateTime из Instant.
Это создаёт объект zoned date-time с тем же мгновением, что и указано. Вызов ChronoZonedDateTime.toInstant() вернёт мгновение, равное тому, которое использовалось здесь.
Преобразование мгновения в объект zoned date-time простое, так как для каждого мгновения существует только одно допустимое смещение.
- Параметры:
-
instant- мгновение для создания даты и времени, не null -
zone- часовой пояс, не null - Возвращает:
- объект zoned date-time, не null
- Выбрасывает:
-
DateTimeException- если результат выходит за поддерживаемый диапазон
ofInstant
public static ZonedDateTime ofInstant(LocalDateTime localDateTime,
ZoneOffset offset,
ZoneId zone) Получает экземпляр ZonedDateTime из мгновения, сформированного путём объединения локальной даты и времени и смещения.
Это создаёт объект zoned date-time путём combining локальной даты и времени и смещения. Это сочетание однозначно определяет мгновение без неоднозначности.
Преобразование мгновения в объект zoned date-time простое, так как для каждого мгновения существует только одно допустимое смещение. Если допустимое смещение отличается от указанного смещения, то дата и время и смещение объекта zoned date-time будут отличаться от указанных.
Если используемое ZoneId является ZoneOffset, этот метод эквивалентен of(LocalDateTime, ZoneId).
- Параметры:
-
localDateTime- локальная дата и время, не null -
offset- смещение часового пояса, не null -
zone- часовой пояс, не null - Возвращает:
- объект zoned date-time, не null
ofStrict
public static ZonedDateTime ofStrict(LocalDateTime localDateTime,
ZoneOffset offset,
ZoneId zone) Получает экземпляр ZonedDateTime, строго проверяя комбинацию локальной даты и времени, смещения и идентификатора часового пояса.
Это создаёт объект zoned date-time, гарантируя, что смещение допустимо для локальной даты и времени в соответствии с правилами указанного часового пояса. Если смещение недопустимо, выбрасывается исключение.
- Параметры:
-
localDateTime- локальное время и дата, не null -
offset- смещение зоны, не null -
zone- часовой пояс, не null - Возвращает:
- объект zoned date-time, не null
- Выбрасывает:
-
DateTimeException- если комбинация аргументов некорректна
from
public static ZonedDateTime from(TemporalAccessor temporal)
Получает экземпляр ZonedDateTime из временного объекта.
Это получает zoned date-time, основанный на указанном временном объекте. TemporalAccessor представляет собой произвольный набор информации о дате и времени, который эта фабрика преобразует в экземпляр ZonedDateTime.
Преобразование сначала получит ZoneId из временного объекта, при необходимости используя ZoneOffset. Затем оно попытается получить Instant, при необходимости используя LocalDateTime. Результатом будет либо комбинация ZoneId или ZoneOffset с Instant или LocalDateTime. Реализации разрешается выполнять оптимизации, такие как доступ к полям, эквивалентным соответствующим объектам.
Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса с помощью ссылки на метод, ZonedDateTime::from.
- Параметры:
-
temporal- временной объект для преобразования, не null - Возвращает:
- объект zoned date-time, не null
- Выбрасывает:
-
DateTimeException- если невозможно преобразовать во временной объектZonedDateTime - См. также:
Chronology.zonedDateTime(TemporalAccessor)
parse
public static ZonedDateTime parse(CharSequence text)
Получает экземпляр ZonedDateTime из текстовой строки, такой как 2007-12-03T10:15:30+01:00[Europe/Paris].
Строка должна представлять собой допустимое время и анализируется с помощью DateTimeFormatter.ISO_ZONED_DATE_TIME.
- Параметры:
-
text- текст для анализа, такой как "2007-12-03T10:15:30+01:00[Europe/Paris]", не null - Возвращает:
- разложенное значение zoned date-time, не null
- Выбрасывает:
-
DateTimeParseException- если текст не может быть проанализирован
parse
public static ZonedDateTime parse(CharSequence text,
DateTimeFormatter formatter) Получает экземпляр ZonedDateTime из текстовой строки с использованием определённого формата.
Текст анализируется с помощью формата, возвращая дату и время.
- Параметры:
-
text- текст для анализа, не null -
formatter- используемый формат, не null - Возвращает:
- разложенное значение zoned date-time, не null
- Выбрасывает:
-
DateTimeParseException- если текст не может быть проанализирован
isSupported
public boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
Проверяет, может ли быть запрошено значение указанного поля в этом объекте zoned date-time. Если false, то вызов методов range, get и with(TemporalField, long) вызовет исключение.
Если поле является ChronoField, тогда запрос выполняется здесь. Поддерживаемые поля:
-
NANO_OF_SECOND -
NANO_OF_DAY -
MICRO_OF_SECOND -
MICRO_OF_DAY -
MILLI_OF_SECOND -
MILLI_OF_DAY -
SECOND_OF_MINUTE -
SECOND_OF_DAY -
MINUTE_OF_HOUR -
MINUTE_OF_DAY -
HOUR_OF_AMPM -
CLOCK_HOUR_OF_AMPM -
HOUR_OF_DAY -
CLOCK_HOUR_OF_DAY -
AMPM_OF_DAY -
DAY_OF_WEEK -
ALIGNED_DAY_OF_WEEK_IN_MONTH -
ALIGNED_DAY_OF_WEEK_IN_YEAR -
DAY_OF_MONTH -
DAY_OF_YEAR -
EPOCH_DAY -
ALIGNED_WEEK_OF_MONTH -
ALIGNED_WEEK_OF_YEAR -
MONTH_OF_YEAR -
PROLEPTIC_MONTH -
YEAR_OF_ERA -
YEAR -
ERA -
INSTANT_SECONDS -
OFFSET_SECONDS
ChronoField экземпляры вернут false. Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.isSupportedBy(TemporalAccessor) с this в качестве аргумента. Поддерживается ли поле определяется полем.
- Определено в:
-
isSupportedв интерфейсеChronoZonedDateTime<LocalDate> - Определено в:
-
isSupportedв интерфейсеTemporalAccessor - Параметры:
-
field- поле для проверки, null возвращает false - Возвращает:
- true, если поле поддерживается, false если нет
isSupported
public boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанный блок времени.
Проверяет, можно ли добавить или вычесть указанный блок времени из этого объекта zoned date-time. Если false, вызов методов plus(long, TemporalUnit) и minus вызовет исключение.
Если блок времени является ChronoUnit, тогда запрос выполняется здесь. Поддерживаемые блоки времени:
-
NANOS -
MICROS -
MILLIS -
SECONDS -
MINUTES -
HOURS -
HALF_DAYS -
DAYS -
WEEKS -
MONTHS -
YEARS -
DECADES -
CENTURIES -
MILLENNIA -
ERAS
ChronoUnit экземпляры вернут false. Если блок времени не является ChronoUnit, то результат этого метода получается путём вызова TemporalUnit.isSupportedBy(Temporal) с this в качестве аргумента. Поддерживается ли блок времени определяется блоком.
- Определено в:
-
isSupportedв интерфейсеChronoZonedDateTime<LocalDate> - Определено в:
-
isSupportedв интерфейсеTemporal - Параметры:
-
unit- блок времени для проверки, null возвращает false - Возвращает:
- true, если блок времени поддерживается, false если нет
range
public ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.
Объект диапазона выражает минимальное и максимальное допустимые значения для поля. Этот объект zoned date-time используется для повышения точности возвращаемого диапазона. Если невозможно вернуть диапазон, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос выполняется здесь. supported fields возвращает соответствующие экземпляры диапазонов. Все остальные ChronoField экземпляры вызовут UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.rangeRefinedBy(TemporalAccessor) с this в качестве аргумента. Возможна ли получение диапазона определяется полем.
- Определено в:
-
rangeв интерфейсеTemporalAccessor - Параметры:
-
field- поле, для которого нужно получить диапазон, не null - Возвращает:
- диапазон допустимых значений для поля, не null
- Выбрасывает:
-
DateTimeException- если диапазон для поля получить невозможно -
UnsupportedTemporalTypeException- если поле не поддерживается
get
public int get(TemporalField field)
Получает значение указанного поля из zoned date-time в виде int.
Запрашивает значение указанного поля в этом zoned date-time. Возвращаемое значение всегда будет находиться в допустимом диапазоне значений для поля. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос выполняется здесь. supported fields вернёт допустимые значения, основанные на этом объекте zoned date-time, за исключением NANO_OF_DAY, MICRO_OF_DAY, EPOCH_DAY, PROLEPTIC_MONTH и INSTANT_SECONDS, которые слишком велики, чтобы поместиться в int, и вызовут UnsupportedTemporalTypeException. Все остальные ChronoField экземпляры вызовут UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.getFrom(TemporalAccessor) с this в качестве аргумента. Возможно ли получение значения, и что это значение представляет, определяется полем.
- Определено в:
-
getв интерфейсеTemporalAccessor - Параметры:
-
field- поле для получения, не null - Возвращает:
- значение для поля
- Выбрасывает:
-
DateTimeException- если значение для поля получить невозможно или значение находится вне допустимого диапазона значений для поля -
UnsupportedTemporalTypeException- если поле не поддерживается или диапазон значений превышаетint -
ArithmeticException- если происходит переполнение при вычислении числа
getLong
public long getLong(TemporalField field)
Получает значение указанного поля из этой даты и времени в виде long.
Это запрос значения указанного поля для этой даты и времени. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос реализуется здесь. supported fields вернёт допустимые значения на основе этой даты и времени. Все другие ChronoField экземпляры выбросят исключение UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.getFrom(TemporalAccessor), передавая this в качестве аргумента. Возможность получения значения и то, что оно представляет, определяется полем.
- Указано в:
-
getLongв интерфейсеTemporalAccessor - Параметры:
-
field- поле для получения, не null - Возвращает:
- значение поля
- Исключение:
-
DateTimeException- если значение для поля получить невозможно -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если произошел переполнение числовых данных
getOffset
public ZoneOffset getOffset()
Получает смещение часового пояса, например, '+01:00'.
Это смещение локальной даты и времени от UTC/Гринвича.
- Указано в:
-
getOffsetв интерфейсеChronoZonedDateTime<LocalDate> - Возвращает:
- смещение часового пояса, не null
withEarlierOffsetAtOverlap
public ZonedDateTime withEarlierOffsetAtOverlap()
Возвращает копию этой даты и времени, изменяя смещение часового пояса на меньшее из двух допустимых смещений при перекрытии местного времени.
Этот метод имеет эффект только при перекрытии местного времени, например, при переходе на летнее время осенью. В этой ситуации существуют два допустимых смещения для локальной даты и времени. Вызов этого метода вернёт зонированную дату и время с меньшим из двух выбранных смещений.
Если этот метод вызывается, когда это не перекрытие, возвращается this.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Указано в:
-
withEarlierOffsetAtOverlapв интерфейсеChronoZonedDateTime<LocalDate> - Возвращает:
- экземпляр
ZonedDateTimeна основе этой даты и времени со смещением, не null
withLaterOffsetAtOverlap
public ZonedDateTime withLaterOffsetAtOverlap()
Возвращает копию этой даты и времени, изменяя смещение часового пояса на большее из двух допустимых смещений при перекрытии местного времени.
Этот метод имеет эффект только при перекрытии местного времени, например, при переходе на летнее время осенью. В этой ситуации существуют два допустимых смещения для локальной даты и времени. Вызов этого метода вернёт зонированную дату и время с большим из двух выбранных смещений.
Если этот метод вызывается, когда это не перекрытие, возвращается this.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Указано в:
-
withLaterOffsetAtOverlapв интерфейсеChronoZonedDateTime<LocalDate> - Возвращает:
- экземпляр
ZonedDateTimeна основе этой даты и времени с поздним смещением, не null
getZone
public ZoneId getZone()
Получает часовой пояс, например, 'Europe/Paris'.
Это возвращает идентификатор часового пояса. Он определяет часовой пояс rules, определяющий, как и когда изменяется смещение от UTC/Гринвича.
Идентификатор часового пояса может совпадать со смещением. Если это так, то любые будущие вычисления, такие как сложение или вычитание, не имеют сложных граничных случаев из-за правил часового пояса. См. также withFixedOffsetZone().
- Указано в:
-
getZoneв интерфейсеChronoZonedDateTime<LocalDate> - Возвращает:
- часовой пояс, не null
withZoneSameLocal
public ZonedDateTime withZoneSameLocal(ZoneId zone)
Возвращает копию этой даты и времени с другим часовым поясом, сохраняя локальную дату и время, если это возможно.
Этот метод изменяет часовой пояс и сохраняет локальную дату и время. Локальная дата и время изменяются только если она неверна для нового часового пояса, определённого с помощью того же подхода, что и ofLocal(LocalDateTime, ZoneId, ZoneOffset).
Для изменения часового пояса и корректировки локальной даты и времени используйте withZoneSameInstant(ZoneId).
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Указано в:
-
withZoneSameLocalв интерфейсеChronoZonedDateTime<LocalDate> - Параметры:
-
zone- часовой пояс для изменения, не null - Возвращает:
- экземпляр
ZonedDateTimeна основе этой даты и времени с запрошенным часовым поясом, не null
withZoneSameInstant
public ZonedDateTime withZoneSameInstant(ZoneId zone)
Возвращает копию этой даты и времени с другим часовым поясом, сохраняя мгновение.
Этот метод изменяет часовой пояс и сохраняет мгновение. Это обычно приводит к изменению локальной даты и времени.
Этот метод основан на сохранении того же мгновения, поэтому разрывы и перекрытия в локальной временной шкале не влияют на результат.
Для изменения смещения, сохраняя локальное время, используйте withZoneSameLocal(ZoneId).
- Указано в:
-
withZoneSameInstantв интерфейсеChronoZonedDateTime<LocalDate> - Параметры:
-
zone- часовой пояс для изменения, не null - Возвращает:
- экземпляр
ZonedDateTimeна основе этой даты и времени с запрошенным часовым поясом, не null - Исключение:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
withFixedOffsetZone
public ZonedDateTime withFixedOffsetZone()
Возвращает копию этой даты и времени с идентификатором часового пояса, установленным на смещение.
Это возвращает зонированную дату и время, где идентификатор часового пояса такой же, как getOffset(). Локальная дата и время, смещение и момент времени результата будут такими же, как в этой дате и времени.
Установка даты и времени на фиксированное смещение означает, что любые будущие вычисления, такие как сложение или вычитание, не имеют сложных граничных случаев из-за правил часового пояса. Это также может быть полезно при отправке зонированной даты и времени через сеть, так как большинство протоколов, таких как ISO-8601, обрабатывают только смещения, а не идентификаторы часовых поясов, основанных на регионах.
Это эквивалентно ZonedDateTime.of(zdt.toLocalDateTime(), zdt.getOffset()).
- Возвращает:
- экземпляр
ZonedDateTimeс идентификатором часового пояса, установленным на смещение, не null
toLocalDateTime
public LocalDateTime toLocalDateTime()
Получает LocalDateTime часть этой даты и времени.
Это возвращает LocalDateTime с тем же годом, месяцем, днём и временем, что и эта дата и время.
- Указано в:
-
toLocalDateTimeв интерфейсеChronoZonedDateTime<LocalDate> - Возвращает:
- локальная дата и время части этой даты и времени, не null
toLocalDate
public LocalDate toLocalDate()
Получает LocalDate часть этой даты и времени.
Это возвращает LocalDate с тем же годом, месяцем и днём, что и эта дата и время.
- Указано в:
-
toLocalDateв интерфейсеChronoZonedDateTime<LocalDate> - Возвращает:
- часть даты этой даты и времени, не null
getYear
public int getYear()
Получает поле года.
Этот метод возвращает примитивное значение int для года.
Год, возвращаемый этим методом, является пролептическим, как указано в get(YEAR). Для получения года эры используйте get(YEAR_OF_ERA).
- Возвращает:
- год, от MIN_YEAR до MAX_YEAR
getMonthValue
public int getMonthValue()
Получает поле месяца года от 1 до 12.
Этот метод возвращает месяц в виде int от 1 до 12. Код приложения часто более понятен, если использовать перечисление Month, вызывая getMonth().
- Возвращает:
- месяц года, от 1 до 12
- См. также:
getMonth()
getMonth
public Month getMonth()
Получает поле месяца года, используя перечисление Month.
Этот метод возвращает перечисление Month для месяца. Это предотвращает путаницу, что означают значения int. Если вам нужен доступ к примитивному значению int, то перечисление предоставляет int value.
- Возвращает:
- месяц года, не null
- См. также:
getMonthValue()
getDayOfMonth
public int getDayOfMonth()
Получает поле дня месяца.
Этот метод возвращает примитивное значение int для дня месяца.
- Возвращает:
- день месяца, от 1 до 31
getDayOfYear
public int getDayOfYear()
Получает поле дня года.
Этот метод возвращает примитивное значение int для дня года.
- Возвращает:
- день года, от 1 до 365, или 366 в високосный год
getDayOfWeek
public DayOfWeek getDayOfWeek()
Получает поле дня недели, которое является перечислением DayOfWeek.
Этот метод возвращает перечисление DayOfWeek для дня недели. Это предотвращает путаницу, что означают значения int. Если вам нужен доступ к примитивному значению int, то перечисление предоставляет int value.
Дополнительную информацию можно получить из DayOfWeek. Это включает текстовые имена значений.
- Возвращает:
- день недели, не null
toLocalTime
public LocalTime toLocalTime()
Получает LocalTime часть этой даты и времени.
Это возвращает LocalTime с тем же часом, минутой, секундой и наносекундой, что и эта дата и время.
- Указано в:
-
toLocalTimeв интерфейсеChronoZonedDateTime<LocalDate> - Возвращает:
- часть времени этой даты и времени, не null
getHour
public int getHour()
Получает поле часа дня.
- Возвращает:
- час дня, от 0 до 23
getMinute
public int getMinute()
Получает поле минуты часа.
- Возвращает:
- минуту часа, от 0 до 59
getSecond
public int getSecond()
Получает поле секунд в минуте.
- Возвращает:
- секунды в минуте, от 0 до 59
getNano
public int getNano()
Получает поле наносекунд.
- Возвращает:
- наносекунды, от 0 до 999 999 999
with
public ZonedDateTime with(TemporalAdjuster adjuster)
Возвращает скопированную дату-время с внесённой корректировкой.
Это возвращает ZonedDateTime, на основе текущей, с изменённой датой и временем. Корректировка выполняется с использованием указанного объекта стратегии корректировки. Прочитайте документацию корректировки, чтобы понять, какие изменения будут внесены.
Простая корректировка может просто установить одно из полей, например, поле года. Более сложная корректировка может установить дату на последний день месяца. Подборка общих корректировок представлена в TemporalAdjusters. Они включают поиск "последнего дня месяца" и "следующей среды". Основные классы дат и времени также реализуют интерфейс TemporalAdjuster, например, Month и MonthDay. Корректировка отвечает за обработку особых случаев, таких как переменная длина месяца и високосные годы.
Например, этот код возвращает дату последнего дня июля:
import static java.time.Month.*; import static java.time.temporal.TemporalAdjusters.*; result = zonedDateTime.with(JULY).with(lastDayOfMonth());
Классы LocalDate и LocalTime реализуют TemporalAdjuster, поэтому этот метод может использоваться для изменения даты, времени или смещения:
result = zonedDateTime.with(date); result = zonedDateTime.with(time);
ZoneOffset также реализует TemporalAdjuster, однако его использование в качестве аргумента обычно не влияет. Смещение ZonedDateTime в основном определяется часовым поясом. Поэтому изменение смещения обычно не имеет смысла, так как существует только одно допустимое смещение для локальной даты-времени и часового пояса. Если зона с датой и временем находится в перекрытии летнего времени, то смещение используется для переключения между двумя допустимыми смещениями. Во всех остальных случаях смещение игнорируется.
Результат этого метода получается путем вызова метода TemporalAdjuster.adjustInto(Temporal) на указанной корректировке, передав this в качестве аргумента.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
withв интерфейсеChronoZonedDateTime<LocalDate> - Определено в:
-
withв интерфейсеTemporal - Параметры:
-
adjuster- используемая корректировка, не null - Возвращает:
- a
ZonedDateTimeна основеthisс произведённой корректировкой, не null - Исключения:
-
DateTimeException- если корректировка не может быть произведена -
ArithmeticException- если произошёл переполнение чисел
with
public ZonedDateTime with(TemporalField field,
long newValue) Возвращает копию этой даты-времени с указанным полем, установленным в новое значение.
Это возвращает ZonedDateTime, на основе текущей, с изменённым значением для указанного поля. Это может использоваться для изменения любого поддерживаемого поля, например, года, месяца или дня месяца. Если значение не может быть установлено, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
В некоторых случаях изменение указанного поля может привести к тому, что результирующая дата-время станет недопустимой, например, изменение месяца с 31 января на февраль сделает день месяца недопустимым. В таких случаях поле отвечает за разрешение даты. Обычно оно выбирает предыдущую допустимую дату, которая в данном примере будет последним допустимым днем февраля.
Если поле является ChronoField, то корректировка реализуется здесь.
Поле INSTANT_SECONDS вернёт дату-время с указанным моментом. Зона и наносекунды остаются неизменными. Результат будет иметь смещение, полученное из нового момента и исходной зоны. Если новое значение момента находится за пределами допустимого диапазона, будет выброшено исключение DateTimeException.
Поле OFFSET_SECONDS обычно игнорируется. Смещение ZonedDateTime в основном определяется часовым поясом. Поэтому изменение смещения обычно не имеет смысла, так как существует только одно допустимое смещение для локальной даты-времени и часового пояса. Если зона с датой и временем находится в перекрытии летнего времени, то смещение используется для переключения между двумя допустимыми смещениями. Во всех остальных случаях смещение игнорируется. Если новое значение смещения находится за пределами допустимого диапазона, будет выброшено исключение DateTimeException.
Другие supported fields будут вести себя в соответствии с соответствующим методом в LocalDateTime. Зона не участвует в расчете и останется неизменной. При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в перекрытии, то смещение будет сохранено, если возможно, в противном случае будет использовано более раннее смещение. Если в пропуске, локальная дата-время будет смещена вперёд на длительность пропуска.
Все другие экземпляры ChronoField выбросят исключение UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.adjustInto(Temporal, long) с this в качестве аргумента. В этом случае поле определяет, как и нужно ли корректировать момент.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
withв интерфейсеChronoZonedDateTime<LocalDate> - Определено в:
-
withв интерфейсеTemporal - Параметры:
-
field- поле для установки в результате, не null -
newValue- новое значение поля в результате - Возвращает:
- a
ZonedDateTimeна основеthisс установленным указанным полем, не null - Исключения:
-
DateTimeException- если поле не может быть установлено -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если произошёл переполнение чисел
withYear
public ZonedDateTime withYear(int year)
Возвращает копию этого ZonedDateTime с изменённым годом.
Эта операция выполняется на локальной временной шкале, changing the year локальной даты и времени. Затем она преобразуется обратно в ZonedDateTime, используя идентификатор часового пояса для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в перекрытии, то смещение будет сохранено, если возможно, в противном случае будет использовано более раннее смещение. Если в пропуске, локальная дата-время будет смещена вперёд на длительность пропуска.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
year- год для установки в результат, от MIN_YEAR до MAX_YEAR - Возвращает:
- a
ZonedDateTimeна основе этой даты и времени с запрошенным годом, не null - Исключения:
-
DateTimeException- если значение года неверно
withMonth
public ZonedDateTime withMonth(int month)
Возвращает копию этого ZonedDateTime с изменённым месяцем года.
Эта операция выполняется на локальной временной шкале, changing the month локальной даты и времени. Затем она преобразуется обратно в ZonedDateTime, используя идентификатор часового пояса для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в перекрытии, то смещение будет сохранено, если возможно, в противном случае будет использовано более раннее смещение. Если в пропуске, локальная дата-время будет смещена вперёд на длительность пропуска.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
month- месяц года для установки в результат, от 1 (январь) до 12 (декабрь) - Возвращает:
- a
ZonedDateTimeна основе этой даты и времени с запрошенным месяцем, не null - Исключения:
-
DateTimeException- если значение месяца неверно
withDayOfMonth
public ZonedDateTime withDayOfMonth(int dayOfMonth)
Возвращает копию этого ZonedDateTime с изменённым днём месяца.
Эта операция выполняется на локальной временной шкале, changing the day-of-month локальной даты и времени. Затем она преобразуется обратно в ZonedDateTime, используя идентификатор часового пояса для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в перекрытии, то смещение будет сохранено, если возможно, в противном случае будет использовано более раннее смещение. Если в пропуске, локальная дата-время будет смещена вперёд на длительность пропуска.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
dayOfMonth- день месяца для установки в результат, от 1 до 28-31 - Возвращает:
- a
ZonedDateTimeна основе этой даты и времени с запрошенным днём, не null - Исключения:
-
DateTimeException- если значение дня месяца неверно или день месяца неверен для месяца/года
withDayOfYear
public ZonedDateTime withDayOfYear(int dayOfYear)
Возвращает копию этого ZonedDateTime с изменённым днём года.
Эта операция выполняется на локальной временной шкале, changing the day-of-year локальной даты и времени. Затем она преобразуется обратно в ZonedDateTime, используя идентификатор часового пояса для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальная дата-время находится в перекрытии, то смещение будет сохранено, если возможно, в противном случае будет использовано более раннее смещение. Если в пропуске, локальная дата-время будет смещена вперёд на длительность пропуска.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
dayOfYear- день года для установки в результат, от 1 до 365-366 - Возвращает:
- a
ZonedDateTimeна основе этой даты с запрошенным днём, не null - Исключения:
-
DateTimeException- если значение дня года неверно или день года неверен для года
withHour
public ZonedDateTime withHour(int hour)
Возвращает копию этого ZonedDateTime с изменённым часом дня.
Этот метод работает с локальной временной линией, изменяя время локальной даты и времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор часового пояса для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное время находится в перекрытии, то смещение будет сохранено, если возможно, в противном случае будет использовано более раннее смещение. Если в разрыве, локальное время будет скорректировано вперёд на длину разрыва.
Этот экземпляр неизменяем и не затрагивается этим методом.
- Параметры:
-
hour- час дня, который нужно установить в результате, от 0 до 23 - Возвращает:
- a
ZonedDateTimeна основе этой даты и времени с запрошенным часом, не null - Использует исключения:
-
DateTimeException- если значение часа некорректно
withMinute
public ZonedDateTime withMinute(int minute)
Возвращает копию этого ZonedDateTime с изменённой минутой.
Этот метод работает с локальной временной линией, изменяя время локальной даты и времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор часового пояса для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное время находится в перекрытии, то смещение будет сохранено, если возможно, в противном случае будет использовано более раннее смещение. Если в разрыве, локальное время будет скорректировано вперёд на длину разрыва.
Этот экземпляр неизменяем и не затрагивается этим методом.
- Параметры:
-
minute- минута, которую нужно установить в результате, от 0 до 59 - Возвращает:
- a
ZonedDateTimeна основе этой даты и времени с запрошенной минутой, не null - Использует исключения:
-
DateTimeException- если значение минуты некорректно
withSecond
public ZonedDateTime withSecond(int second)
Возвращает копию этого ZonedDateTime с изменённой секундой.
Этот метод работает с локальной временной линией, изменяя время локальной даты и времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор часового пояса для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное время находится в перекрытии, то смещение будет сохранено, если возможно, в противном случае будет использовано более раннее смещение. Если в разрыве, локальное время будет скорректировано вперёд на длину разрыва.
Этот экземпляр неизменяем и не затрагивается этим методом.
- Параметры:
-
second- секунда, которую нужно установить в результате, от 0 до 59 - Возвращает:
- a
ZonedDateTimeна основе этой даты и времени с запрошенной секундой, не null - Использует исключения:
-
DateTimeException- если значение секунды некорректно
withNano
public ZonedDateTime withNano(int nanoOfSecond)
Возвращает копию этого ZonedDateTime с изменённым наносекундами.
Этот метод работает с локальной временной линией, изменяя время локальной даты и времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор часового пояса для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное время находится в перекрытии, то смещение будет сохранено, если возможно, в противном случае будет использовано более раннее смещение. Если в разрыве, локальное время будет скорректировано вперёд на длину разрыва.
Этот экземпляр неизменяем и не затрагивается этим методом.
- Параметры:
-
nanoOfSecond- наносекунды, которые нужно установить в результате, от 0 до 999 999 999 - Возвращает:
- a
ZonedDateTimeна основе этой даты и времени с запрошенными наносекундами, не null - Использует исключения:
-
DateTimeException- если значение наносекунд некорректно
truncatedTo
public ZonedDateTime truncatedTo(TemporalUnit unit)
Возвращает копию этого ZonedDateTime с усечённым временем.
Усечение возвращает копию исходной даты и времени с полями, меньшими, чем указанная единица, установленные в ноль. Например, усечение с помощью minutes единицы установит поле секунды и наносекунды в ноль.
Единица должна иметь длительность, которая делится на длину стандартного дня без остатка. Это включает все предоставленные единицы времени в ChronoUnit и DAYS. Другие единицы вызывают исключение.
Этот метод работает с локальной временной линией, truncating базового локального времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор часового пояса для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное время находится в перекрытии, то смещение будет сохранено, если возможно, в противном случае будет использовано более раннее смещение. Если в разрыве, локальное время будет скорректировано вперёд на длину разрыва.
Этот экземпляр неизменяем и не затрагивается этим методом.
- Параметры:
-
unit- единица для усечения, не null - Возвращает:
- a
ZonedDateTimeна основе этой даты и времени с усечённым временем, не null - Использует исключения:
-
DateTimeException- если усечение невозможно -
UnsupportedTemporalTypeException- если единица не поддерживается
plus
public ZonedDateTime plus(TemporalAmount amountToAdd)
Возвращает копию этой даты и времени с добавленным указанным значением.
Этот метод возвращает ZonedDateTime, на основе этого, с добавленным указанным значением. Значение обычно представляет собой Period или Duration, но может быть любым другим типом, реализующим интерфейс TemporalAmount.
Вычисление делегируется объекту значения вызовом TemporalAmount.addTo(Temporal). Реализация значения свободна реализовывать добавление любым способом, однако обычно она вызывает plus(long, TemporalUnit). Обратитесь к документации реализации значения, чтобы определить, можно ли его успешно добавить.
Этот экземпляр неизменяем и не затрагивается этим методом.
- Задано:
-
plusв интерфейсеChronoZonedDateTime<LocalDate> - Задано:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- значение для добавления, не null - Возвращает:
- a
ZonedDateTimeна основе этой даты и времени с произведённым добавлением, не null - Использует исключения:
-
DateTimeException- если добавление невозможно -
ArithmeticException- если произошел переполнение числовых значений
plus
public ZonedDateTime plus(long amountToAdd,
TemporalUnit unit) Возвращает копию этой даты и времени с добавленным указанным значением.
Этот метод возвращает ZonedDateTime, на основе этого, с добавленной величиной в терминах единицы. Если добавление невозможно, потому что единица не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле представляет собой ChronoUnit, то добавление реализуется здесь. Часовой пояс не участвует в вычислении и останется неизменным в результате. Вычисления для единиц даты и времени отличаются.
Единицы даты работают с локальной временной линией. Сначала период добавляется к локальной дате и времени, затем результат преобразуется обратно в дату и время с часовым поясом, используя идентификатор часового пояса. Преобразование использует ofLocal(LocalDateTime, ZoneId, ZoneOffset) со смещением до добавления.
Единицы времени работают с временной линией момента. Сначала период добавляется к локальной дате и времени, затем результат преобразуется обратно в дату и время с часовым поясом, используя идентификатор часового пояса. Преобразование использует ofInstant(LocalDateTime, ZoneOffset, ZoneId) со смещением до добавления.
Если поле не является ChronoUnit, то результат этого метода получается путём вызова TemporalUnit.addTo(Temporal, long), передав this в качестве аргумента. В этом случае единица определяет, выполнять ли и как выполнять добавление.
Этот экземпляр неизменяем и не затрагивается этим методом.
- Задано:
-
plusв интерфейсеChronoZonedDateTime<LocalDate> - Задано:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- количество единицы, которое нужно добавить к результату, может быть отрицательным -
unit- единица значения для добавления, не null - Возвращает:
- a
ZonedDateTimeна основе этой даты и времени с добавленным указанным значением, не null - Использует исключения:
-
DateTimeException- если добавление невозможно -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если произошел переполнение числовых значений
plusYears
public ZonedDateTime plusYears(long years)
Возвращает копию этого ZonedDateTime с добавленным указанным количеством лет.
Этот метод работает с локальной временной линией, adding years к локальной дате и времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор часового пояса для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное время находится в перекрытии, то смещение будет сохранено, если возможно, в противном случае будет использовано более раннее смещение. Если в разрыве, локальное время будет скорректировано вперёд на длину разрыва.
Этот экземпляр неизменяем и не затрагивается этим методом.
- Параметры:
-
years- количество лет для добавления, может быть отрицательным - Возвращает:
- a
ZonedDateTimeна основе этой даты и времени с добавленными годами, не null - Использует исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
plusMonths
public ZonedDateTime plusMonths(long months)
Возвращает копию этого ZonedDateTime с указанным числом добавленных месяцев.
Эта операция выполняется на локальной временной шкале, adding months к локальному времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор зоны для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное время находится в перекрытии, то смещение будет сохранено, если это возможно, в противном случае будет использовано более раннее смещение. Если в промежутке, локальное время будет скорректировано вперёд на длительность промежутка.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Параметры:
-
months- количество добавляемых месяцев, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этого времени с добавленными месяцами, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusWeeks
public ZonedDateTime plusWeeks(long weeks)
Возвращает копию этого ZonedDateTime с указанным числом добавленных недель.
Эта операция выполняется на локальной временной шкале, adding weeks к локальному времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор зоны для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное время находится в перекрытии, то смещение будет сохранено, если это возможно, в противном случае будет использовано более раннее смещение. Если в промежутке, локальное время будет скорректировано вперёд на длительность промежутка.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Параметры:
-
weeks- количество добавляемых недель, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этого времени с добавленными неделями, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusDays
public ZonedDateTime plusDays(long days)
Возвращает копию этого ZonedDateTime с указанным числом добавленных дней.
Эта операция выполняется на локальной временной шкале, adding days к локальному времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор зоны для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное время находится в перекрытии, то смещение будет сохранено, если это возможно, в противном случае будет использовано более раннее смещение. Если в промежутке, локальное время будет скорректировано вперёд на длительность промежутка.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Параметры:
-
days- количество добавляемых дней, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этого времени с добавленными днями, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusHours
public ZonedDateTime plusHours(long hours)
Возвращает копию этого ZonedDateTime с указанным числом добавленных часов.
Эта операция выполняется на временной шкале мгновений, так что добавление одного часа всегда будет продолжительностью в один час позже. Это может привести к изменению локального времени на величину, отличную от одного часа. Обратите внимание, что это другой подход, чем используется для дней, месяцев и лет, таким образом, добавление одного дня не равно добавлению 24 часов.
Например, рассмотрим часовой пояс, такой как 'Europe/Paris', где осеннее переключение DST означает, что локальные времена с 02:00 до 02:59 происходят дважды, меняясь со смещением +02:00 летом на +01:00 зимой.
- Добавление одного часа к 01:30+02:00 даст 02:30+02:00 (оба во время летнего времени)
- Добавление одного часа к 02:30+02:00 даст 02:30+01:00 (переход от летнего к зимнему времени)
- Добавление одного часа к 02:30+01:00 даст 03:30+01:00 (оба во время зимнего времени)
- Добавление трёх часов к 01:30+02:00 даст 03:30+01:00 (переход от летнего к зимнему времени)
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Параметры:
-
hours- количество добавляемых часов, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этого времени с добавленными часами, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusMinutes
public ZonedDateTime plusMinutes(long minutes)
Возвращает копию этого ZonedDateTime с указанным числом добавленных минут.
Эта операция выполняется на временной шкале мгновений, так что добавление одной минуты всегда будет продолжительностью в одну минуту позже. Это может привести к изменению локального времени на величину, отличную от одной минуты. Обратите внимание, что это другой подход, чем используется для дней, месяцев и лет.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Параметры:
-
minutes- количество добавляемых минут, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этого времени с добавленными минутами, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusSeconds
public ZonedDateTime plusSeconds(long seconds)
Возвращает копию этого ZonedDateTime с указанным числом добавленных секунд.
Эта операция выполняется на временной шкале мгновений, так что добавление одной секунды всегда будет продолжительностью в одну секунду позже. Это может привести к изменению локального времени на величину, отличную от одной секунды. Обратите внимание, что это другой подход, чем используется для дней, месяцев и лет.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Параметры:
-
seconds- количество добавляемых секунд, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этого времени с добавленными секундами, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusNanos
public ZonedDateTime plusNanos(long nanos)
Возвращает копию этого ZonedDateTime с указанным числом добавленных наносекунд.
Эта операция выполняется на временной шкале мгновений, так что добавление одной наносекунды всегда будет продолжительностью в одну наносекунду позже. Это может привести к изменению локального времени на величину, отличную от одной наносекунды. Обратите внимание, что это другой подход, чем используется для дней, месяцев и лет.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Параметры:
-
nanos- количество добавляемых наносекунд, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этого времени с добавленными наносекундами, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minus
public ZonedDateTime minus(TemporalAmount amountToSubtract)
Возвращает копию этого времени с указанным количеством вычтенных величин.
Это возвращает ZonedDateTime, на основе этого, с указанным количеством вычтенных величин. Величина обычно является Period или Duration, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту количества путём вызова TemporalAmount.subtractFrom(Temporal). Реализация количества свободна реализовывать вычитание любым способом, но обычно обращается к minus(long, TemporalUnit). Обратитесь к документации реализации количества для определения, может ли оно быть успешно вычтено.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Определено в:
-
minusв интерфейсеChronoZonedDateTime<LocalDate> - Определено в:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- количество для вычитания, не null - Возвращает:
ZonedDateTimeна основе этого времени с произведённым вычитанием, не null- Исключения:
-
DateTimeException- если вычитание невозможно -
ArithmeticException- если произошел численный переполнение
minus
public ZonedDateTime minus(long amountToSubtract,
TemporalUnit unit) Возвращает копию этого времени с указанным количеством вычтенных величин.
Это возвращает ZonedDateTime, на основе этого, с вычтенным количеством в терминах единицы. Если вычитание невозможно, потому что единица не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Вычисление для единиц даты и времени различается.
Единицы дат работают на локальной временной шкале. Сначала период вычитается из локального времени, затем преобразуется обратно в дату-время с часовым поясом с использованием идентификатора зоны. Преобразование использует ofLocal(LocalDateTime, ZoneId, ZoneOffset) со смещением до вычитания.
Единицы времени работают на временной шкале мгновений. Сначала период вычитается из локального времени, затем преобразуется обратно в дату-время с часовым поясом с использованием идентификатора зоны. Преобразование использует ofInstant(LocalDateTime, ZoneOffset, ZoneId) со смещением до вычитания.
Этот метод эквивалентен plus(long, TemporalUnit) с отрицательным количеством. См. этот метод для полного описания того, как работает добавление, и таким образом вычитание.
Этот экземпляр неизменяемый и не затрагивается этим методом.
- Определено в:
-
minusв интерфейсеChronoZonedDateTime<LocalDate> - Определено в:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- количество единицы для вычитания из результата, может быть отрицательным -
unit- единица количества для вычитания, не null - Возвращает:
ZonedDateTimeна основе этого времени с указанным количеством вычтенных величин, не null- Исключения:
-
DateTimeException- если вычитание невозможно -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если произошел численный переполнение
minusYears
public ZonedDateTime minusYears(long years)
Возвращает копию этого ZonedDateTime с указанным количеством лет, вычтенных из него.
Это происходит на локальной временной шкале, subtracting years локального значения даты и времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор зоны для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное значение даты и времени находится в перекрытии, то смещение сохраняется, если это возможно, в противном случае используется более раннее смещение. Если в промежутке, то локальное значение даты и времени будет скорректировано вперёд на длину промежутка.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
years- количество лет для вычитания, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этой даты и времени с вычтенными годами, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusMonths
public ZonedDateTime minusMonths(long months)
Возвращает копию этого ZonedDateTime с указанным количеством месяцев, вычтенных из него.
Это происходит на локальной временной шкале, subtracting months локального значения даты и времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор зоны для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное значение даты и времени находится в перекрытии, то смещение сохраняется, если это возможно, в противном случае используется более раннее смещение. Если в промежутке, то локальное значение даты и времени будет скорректировано вперёд на длину промежутка.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
months- количество месяцев для вычитания, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этой даты и времени с вычтенными месяцами, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusWeeks
public ZonedDateTime minusWeeks(long weeks)
Возвращает копию этого ZonedDateTime с указанным количеством недель, вычтенных из него.
Это происходит на локальной временной шкале, subtracting weeks локального значения даты и времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор зоны для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное значение даты и времени находится в перекрытии, то смещение сохраняется, если это возможно, в противном случае используется более раннее смещение. Если в промежутке, то локальное значение даты и времени будет скорректировано вперёд на длину промежутка.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
weeks- количество недель для вычитания, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этой даты и времени с вычтенными неделями, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusDays
public ZonedDateTime minusDays(long days)
Возвращает копию этого ZonedDateTime с указанным количеством дней, вычтенных из него.
Это происходит на локальной временной шкале, subtracting days локального значения даты и времени. Затем это преобразуется обратно в ZonedDateTime, используя идентификатор зоны для получения смещения.
При преобразовании обратно в ZonedDateTime, если локальное значение даты и времени находится в перекрытии, то смещение сохраняется, если это возможно, в противном случае используется более раннее смещение. Если в промежутке, то локальное значение даты и времени будет скорректировано вперёд на длину промежутка.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
days- количество дней для вычитания, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этой даты и времени с вычтенными днями, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusHours
public ZonedDateTime minusHours(long hours)
Возвращает копию этого ZonedDateTime с указанным количеством часов, вычтенных из него.
Это происходит на временной шкале момента, так что вычитание одного часа всегда будет длительностью в один час раньше. Это может привести к изменению локального значения даты и времени на величину, отличную от одного часа. Обратите внимание, что это другой подход, чем используемый для дней, месяцев и лет, поэтому вычитание одного дня не равно добавлению 24 часов.
Например, рассмотрим часовой пояс, такой как 'Europe/Paris', где осеннее переключение DST означает, что локальные времена с 02:00 до 02:59 происходят дважды, изменяя смещение с +02:00 летом на +01:00 зимой.
- Вычитание одного часа из 03:30+01:00 даст 02:30+01:00 (оба в зимнее время)
- Вычитание одного часа из 02:30+01:00 даст 02:30+02:00 (переход от зимнего к летнему времени)
- Вычитание одного часа из 02:30+02:00 даст 01:30+02:00 (оба в летнее время)
- Вычитание трех часов из 03:30+01:00 даст 01:30+02:00 (переход от зимнего к летнему времени)
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
hours- количество часов для вычитания, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этой даты и времени с вычтенными часами, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusMinutes
public ZonedDateTime minusMinutes(long minutes)
Возвращает копию этого ZonedDateTime с указанным количеством минут, вычтенных из него.
Это происходит на временной шкале момента, так что вычитание одной минуты всегда будет длительностью в одну минуту раньше. Это может привести к изменению локального значения даты и времени на величину, отличную от одной минуты. Обратите внимание, что это другой подход, чем используемый для дней, месяцев и лет.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
minutes- количество минут для вычитания, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этой даты и времени с вычтенными минутами, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusSeconds
public ZonedDateTime minusSeconds(long seconds)
Возвращает копию этого ZonedDateTime с указанным количеством секунд, вычтенных из него.
Это происходит на временной шкале момента, так что вычитание одной секунды всегда будет длительностью в одну секунду раньше. Это может привести к изменению локального значения даты и времени на величину, отличную от одной секунды. Обратите внимание, что это другой подход, чем используемый для дней, месяцев и лет.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
seconds- количество секунд для вычитания, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этой даты и времени с вычтенными секундами, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
minusNanos
public ZonedDateTime minusNanos(long nanos)
Возвращает копию этого ZonedDateTime с указанным количеством наносекунд, вычтенных из него.
Это происходит на временной шкале момента, так что вычитание одного нано будет всегда длительностью в одно нано раньше. Это может привести к изменению локального значения даты и времени на величину, отличную от одного нано. Обратите внимание, что это другой подход, чем используемый для дней, месяцев и лет.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
nanos- количество наносекунд для вычитания, может быть отрицательным - Возвращает:
ZonedDateTimeна основе этой даты и времени с вычтенными наносекундами, не null- Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
query
public <R> R query(TemporalQuery<R> query)
Запрашивает это значение даты и времени с использованием указанного запроса.
Запрашивает это значение даты и времени с помощью указанного объекта стратегии запроса. Объект TemporalQuery определяет логику, используемую для получения результата. Прочитайте документацию запроса, чтобы понять, какой будет результат этого метода.
Результат этого метода получается путём вызова метода TemporalQuery.queryFrom(TemporalAccessor) на указанном запросе, передавая this в качестве аргумента.
- Определено в:
-
queryв интерфейсеChronoZonedDateTime<LocalDate> - Определено в:
-
queryв интерфейсеTemporalAccessor - Тип параметров:
-
R- тип результата - Параметры:
-
query- запрос для вызова, не null - Возвращает:
- результат запроса, может быть null (определяется запросом)
- Исключения:
-
DateTimeException- если запрос не удаётся выполнить (определяется запросом) -
ArithmeticException- если происходит переполнение чисел (определяется запросом)
until
public long until(Temporal endExclusive,
TemporalUnit unit) Вычисляет временной интервал до другой даты и времени в указанных единицах измерения.
Это вычисляет разницу во времени между двумя объектами ZonedDateTime в единицах одной TemporalUnit. Точками отсчета являются начальная точка и указанная дата и время. Результат будет отрицательным, если конечная точка предшествует начальной. Например, разницу во времени между двумя датами и временами в днях можно рассчитать с помощью startDateTime.until(endDateTime, DAYS).
Temporal , переданная в этот метод, преобразуется в ZonedDateTime с помощью from(TemporalAccessor). Если часовой пояс отличается у двух зонных дат и времени, указанная конечная дата и время приводятся к тому же часовому поясу, что и эта дата и время.
Вычисление возвращает целое число, представляющее количество полных единиц между двумя датами и временами. Например, количество месяцев между 2012-06-15T00:00Z и 2012-08-14T23:59Z будет всего один месяц, так как до двух месяцев не хватает одной минуты.
Существует два равнозначных способа использования этого метода. Первый — вызвать этот метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):
// these two lines are equivalent amount = start.until(end, MONTHS); amount = MONTHS.between(start, end);Выбор должен быть сделан на основе того, что делает код более читаемым.
Вычисление реализовано в этом методе для ChronoUnit. Поддерживаются единицы NANOS, MICROS, MILLIS, SECONDS, MINUTES, HOURS и HALF_DAYS, DAYS, WEEKS, MONTHS, YEARS, DECADES, CENTURIES, MILLENNIA и ERAS. Другие значения ChronoUnit приведут к исключению.
Вычисления для единиц даты и времени отличаются.
Единицы даты работают с локальной временной шкалой, используя локальное время. Например, период с полудня первого дня до полудня следующего дня в днях всегда будет считаться ровно одним днем, независимо от того, было ли изменение летнего времени или нет.
Единицы времени работают с временной шкалой момента. Вычисление фактически преобразует оба зонные даты и время в моменты и затем вычисляет период между моментами. Например, период с полудня первого дня до полудня следующего дня в часах может составлять 23, 24 или 25 часов (или какое-то другое количество) в зависимости от того, было ли изменение летнего времени или нет.
Если единица не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.between(Temporal, Temporal) , передавая this в качестве первого аргумента и преобразованный входной временной параметр в качестве второго аргумента.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Specified by:
-
untilв интерфейсеTemporal - Parameters:
-
endExclusive- конечная дата, исключая её, которая преобразуется вZonedDateTime, не null -
unit- единица измерения разницы, не null - Returns:
- разница во времени между этой датой и временем и конечной датой и временем
- Throws:
-
DateTimeException- если разницу невозможно вычислить или временной параметр конца не может быть преобразован вZonedDateTime -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если произошел переполнение числовых значений
format
public String format(DateTimeFormatter formatter)
Форматирует эту дату и время с использованием указанного форматера.
Эта дата и время будут переданы в форматер для получения строки.
- Specified by:
-
formatв интерфейсеChronoZonedDateTime<LocalDate> - Parameters:
-
formatter- используемый форматер, не null - Returns:
- строка отформатированной даты и времени, не null
- Throws:
-
DateTimeException- если при печати произошла ошибка
toOffsetDateTime
public OffsetDateTime toOffsetDateTime()
Преобразует эту дату и время в OffsetDateTime.
Это создаёт дату и время с учётом смещения, используя локальную дату и время и смещение. Идентификатор часового пояса игнорируется.
- Returns:
- дата и время с учётом смещения, представляющие ту же локальную дату и время и смещение, не null
equals
public boolean equals(Object obj)
Проверяет, равна ли эта дата и время другой дате и времени.
Сравнение основано на дате и времени с учётом смещения и часового пояса. Сравниваются только объекты типа ZonedDateTime, другие типы возвращают false.
- Specified by:
-
equalsв интерфейсеChronoZonedDateTime<LocalDate> - Overrides:
-
equalsв классеObject - Parameters:
-
obj- объект для проверки, null возвращает false - Returns:
- true, если эта дата и время равны другой дате и времени
- See Also:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Хэш-код для этой даты и времени.
- Specified by:
-
hashCodeв интерфейсеChronoZonedDateTime<LocalDate> - Overrides:
-
hashCodeв классеObject - Returns:
- подходящий хэш-код
- See Also:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
toString
public String toString()
Выводит эту дату и время в виде String, например, 2007-12-03T10:15:30+01:00[Europe/Paris].
Формат состоит из LocalDateTime и ZoneOffset. Если ZoneId не совпадает со смещением, выводится идентификатор. Вывод совместим с ISO-8601, если смещение и идентификатор совпадают.
- Specified by:
-
toStringв интерфейсеChronoZonedDateTime<LocalDate> - Overrides:
-
toStringв классеObject - Returns:
- строковое представление этой даты и времени, не null
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/ZonedDateTime.html