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