Класс 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) Возвращает копию этого |
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, 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.