Класс 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 |
Возвращает копию этих даты и времени с другим часовым поясом, по возможности сохраняя локальные дату и время. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Метод финализации устарел и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ждать до пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ждать до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения указанного интервала реального времени. |
final void |
wait |
Заставляет текущий поток ждать до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения указанного интервала реального времени. |
Методы, объявленные в интерфейсе ChronoZonedDateTime
compareTo, getChronology, isAfter, isBefore, isEqual, toEpochSecond, toInstant | Модификатор и тип | Метод | Описание |
|---|---|---|
default int |
compareTo |
Сравнивает эти дату и время с другими датой и временем, включая хронологию. |
default Chronology |
getChronology() |
Получает хронологию этих даты и времени. |
default boolean |
isAfter |
Проверяет, наступает ли мгновение этих даты и времени позже мгновения указанных даты и времени. |
default boolean |
isBefore |
Проверяет, наступает ли мгновение этих даты и времени раньше мгновения указанных даты и времени. |
default boolean |
isEqual |
Проверяет, совпадает ли мгновение этих даты и времени с мгновением указанных даты и времени. |
default long |
toEpochSecond() |
Преобразует эти дату и время в количество секунд с начала эпохи 1970-01-01T00:00:00Z. |
default Instant |
toInstant() |
Преобразует эти дату и время в Instant. |
Подробное описание методов
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.toString(), за которым следует результат вызова ZoneOffset.toString(). Если значение секунд и/или наносекунд равно нулю, оно не выводится, чтобы получить кратчайшее представление. Если 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.