Spec-Zone.ru › OpenJDK 27

Класс OffsetTime

java.lang.Object
java.time.OffsetTime
Все реализуемые интерфейсы:
Serializable, Comparable<OffsetTime>, Temporal, TemporalAccessor, TemporalAdjuster
public final class OffsetTime extends Object implements Temporal, TemporalAdjuster, Comparable<OffsetTime>, Serializable
Время со смещением от UTC/Гринвича в календарной системе ISO-8601, например 10:15:30+01:00.

OffsetTime — неизменяемый объект даты и времени, представляющий время, которое часто рассматривается как час-минута-секунда-смещение. Этот класс хранит все поля времени с точностью до наносекунд, а также смещение часового пояса. Например, значение "13:45:30.123456789+02:00" может храниться в OffsetTime.

Это класс, основанный на значениях; программистам следует считать экземпляры, которые равны, взаимозаменяемыми и не использовать экземпляры для синхронизации, иначе возможно непредсказуемое поведение. Например, в будущей версии синхронизация может завершиться неудачей. Для сравнения следует использовать метод equals.

Требования к реализации:
Этот класс является неизменяемым и потокобезопасным.
Начиная с версии:
1.8
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final OffsetTime MAX
Максимальное поддерживаемое значение OffsetTime — '23:59:59.999999999-18:00'.
static final OffsetTime MIN
Минимальное поддерживаемое значение OffsetTime — '00:00:00+18:00'.

Краткое описание методов

Модификатор и тип Метод Описание
Temporal adjustInto(Temporal temporal)
Настраивает указанный временной объект так, чтобы его смещение и время совпадали с этим объектом.
OffsetDateTime atDate(LocalDate date)
Объединяет это время с датой, чтобы создать OffsetDateTime.
int compareTo(OffsetTime other)
Сравнивает это значение OffsetTime с другим временем.
boolean equals(Object obj)
Проверяет, равно ли это время другому времени.
String format(DateTimeFormatter formatter)
Форматирует это время с помощью указанного средства форматирования.
static OffsetTime from(TemporalAccessor temporal)
Получает экземпляр OffsetTime из временного объекта.
int get(TemporalField field)
Получает значение указанного поля этого времени в виде int.
int getHour()
Получает поле часа суток.
long getLong(TemporalField field)
Получает значение указанного поля этого времени в виде long.
int getMinute()
Получает поле минуты часа.
int getNano()
Получает поле наносекунды секунды.
ZoneOffset getOffset()
Получает смещение часового пояса, например '+01:00'.
int getSecond()
Получает поле секунды минуты.
int hashCode()
Хеш-код этого времени.
boolean isAfter(OffsetTime other)
Проверяет, наступает ли момент времени для этого значения OffsetTime позже момента указанного времени, если применить оба времени к одной дате.
boolean isBefore(OffsetTime other)
Проверяет, наступает ли момент времени для этого значения OffsetTime раньше момента указанного времени, если применить оба времени к одной дате.
boolean isEqual(OffsetTime other)
Проверяет, совпадает ли момент времени для этого значения OffsetTime с моментом указанного времени, если применить оба времени к одной дате.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица измерения.
OffsetTime minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого времени с вычтенным указанным значением.
OffsetTime minus(TemporalAmount amountToSubtract)
Возвращает копию этого времени с вычтенным указанным значением.
OffsetTime minusHours(long hours)
Возвращает копию этого значения OffsetTime с вычтенным указанным количеством часов.
OffsetTime minusMinutes(long minutes)
Возвращает копию этого значения OffsetTime с вычтенным указанным количеством минут.
OffsetTime minusNanos(long nanos)
Возвращает копию этого значения OffsetTime с вычтенным указанным количеством наносекунд.
OffsetTime minusSeconds(long seconds)
Возвращает копию этого значения OffsetTime с вычтенным указанным количеством секунд.
static OffsetTime now()
Получает текущее время по системным часам в часовом поясе по умолчанию.
static OffsetTime now(Clock clock)
Получает текущее время по указанным часам.
static OffsetTime now(ZoneId zone)
Получает текущее время по системным часам в указанном часовом поясе.
static OffsetTime of(int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
Получает экземпляр OffsetTime из часа, минуты, секунды и наносекунды.
static OffsetTime of(LocalTime time, ZoneOffset offset)
Получает экземпляр OffsetTime из локального времени и смещения.
static OffsetTime ofInstant(Instant instant, ZoneId zone)
Получает экземпляр OffsetTime из Instant и идентификатора часового пояса.
static OffsetTime parse(CharSequence text)
Получает экземпляр OffsetTime из текстовой строки, например 10:15:30+01:00.
static OffsetTime parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр OffsetTime из текстовой строки с помощью указанного средства форматирования.
OffsetTime plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого времени с добавленным указанным значением.
OffsetTime plus(TemporalAmount amountToAdd)
Возвращает копию этого времени с добавленным указанным значением.
OffsetTime plusHours(long hours)
Возвращает копию этого значения OffsetTime с добавленным указанным количеством часов.
OffsetTime plusMinutes(long minutes)
Возвращает копию этого значения OffsetTime с добавленным указанным количеством минут.
OffsetTime plusNanos(long nanos)
Возвращает копию этого значения OffsetTime с добавленным указанным количеством наносекунд.
OffsetTime plusSeconds(long seconds)
Возвращает копию этого значения OffsetTime с добавленным указанным количеством секунд.
<R> R query(TemporalQuery<R> query)
Выполняет запрос к этому времени с помощью указанного запроса.
ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.
long toEpochSecond(LocalDate date)
Преобразует это значение OffsetTime в количество секунд с начала эпохи 1970-01-01T00:00:00Z.
LocalTime toLocalTime()
Получает компонент LocalTime этой даты и времени.
String toString()
Представляет это время в виде String, например 10:15:30+01:00.
OffsetTime truncatedTo(TemporalUnit unit)
Возвращает копию этого значения OffsetTime с усечённым временем.
long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет промежуток времени до другого времени в указанных единицах измерения.
OffsetTime with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этого времени.
OffsetTime with(TemporalField field, long newValue)
Возвращает копию этого времени, в которой указанному полю присвоено новое значение.
OffsetTime withHour(int hour)
Возвращает копию этого значения OffsetTime с изменённым полем часа суток.
OffsetTime withMinute(int minute)
Возвращает копию этого значения OffsetTime с изменённым полем минуты часа.
OffsetTime withNano(int nanoOfSecond)
Возвращает копию этого значения OffsetTime с изменённым полем наносекунды секунды.
OffsetTime withOffsetSameInstant(ZoneOffset offset)
Возвращает копию этого значения OffsetTime с указанным смещением, обеспечивая совпадение результата с тем же моментом времени в предполагаемый день.
OffsetTime withOffsetSameLocal(ZoneOffset offset)
Возвращает копию этого значения OffsetTime с указанным смещением, обеспечивая совпадение результата с тем же локальным временем.
OffsetTime withSecond(int second)
Возвращает копию этого значения OffsetTime с изменённым полем секунды минуты.

Методы, объявленные в классе 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 или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание полей

MIN

public static final OffsetTime MIN
Минимальное поддерживаемое OffsetTime, '00:00:00+18:00'. Это время полуночи в начале дня при максимальном смещении (чем больше смещение, тем раньше оно находится на временной шкале). Это сочетание LocalTime.MIN и ZoneOffset.MAX. Приложение может использовать это значение как дату «далёкого прошлого».

MAX

public static final OffsetTime MAX
Максимальное поддерживаемое OffsetTime, '23:59:59.999999999-18:00'. Это время непосредственно перед полуночью в конце дня при минимальном смещении (чем больше отрицательное смещение, тем позже оно находится на временной шкале). Это сочетание LocalTime.MAX и ZoneOffset.MIN. Приложение может использовать это значение как дату «далёкого будущего».

Подробное описание методов

now

public static OffsetTime now()
Получает текущее время по системным часам в часовом поясе по умолчанию.

Для получения текущего времени выполняется запрос к system clock в часовом поясе по умолчанию. Смещение вычисляется на основе часового пояса, заданного в часах.

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

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

now

public static OffsetTime now(ZoneId zone)
Получает текущее время по системным часам в указанном часовом поясе.

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

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

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

now

public static OffsetTime now(Clock clock)
Получает текущее время по указанным часам.

Для получения текущего времени выполняется запрос к указанным часам. Смещение вычисляется на основе часового пояса, заданного в часах.

Этот метод позволяет использовать альтернативные часы для тестирования. Альтернативные часы можно задать с помощью dependency injection.

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

of

public static OffsetTime of(LocalTime time, ZoneOffset offset)
Создаёт экземпляр OffsetTime на основе местного времени и смещения.
Параметры:
time — местное время, не null
offset — смещение часового пояса, не null
Возвращает:
время со смещением, не null

of

public static OffsetTime of(int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
Создаёт экземпляр OffsetTime на основе часа, минуты, секунды и наносекунды.

Создаёт время со смещением и четырьмя указанными полями.

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

Параметры:
hour — час дня, от 0 до 23
minute — минута часа, от 0 до 59
second — секунда минуты, от 0 до 59
nanoOfSecond — наносекунда секунды, от 0 до 999,999,999
offset — смещение часового пояса, не null
Возвращает:
время со смещением, не null
Выбрасывает:
DateTimeException — если значение любого поля выходит за допустимый диапазон

ofInstant

public static OffsetTime ofInstant(Instant instant, ZoneId zone)
Создаёт экземпляр OffsetTime на основе Instant и идентификатора часового пояса.

Создаётся время со смещением, соответствующее тому же моменту времени, что и указанный. Определить смещение относительно UTC/Гринвича просто, поскольку для каждого момента времени существует только одно допустимое смещение.

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

Параметры:
instant — момент времени, на основе которого создаётся время, не null
zone — часовой пояс, которым может быть смещение, не null
Возвращает:
время со смещением, не null

from

public static OffsetTime from(TemporalAccessor temporal)
Создаёт экземпляр OffsetTime на основе временного объекта.

Создаёт время со смещением на основе указанного временного объекта. TemporalAccessor представляет произвольный набор сведений о дате и времени, который эта фабрика преобразует в экземпляр OffsetTime.

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

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

Параметры:
temporal — преобразуемый временной объект, не null
Возвращает:
время со смещением, не null
Выбрасывает:
DateTimeException — если преобразование в OffsetTime невозможно

parse

public static OffsetTime parse(CharSequence text)
Создаёт экземпляр OffsetTime из текстовой строки, например 10:15:30+01:00.

Строка должна представлять допустимое время и разбирается с помощью DateTimeFormatter.ISO_OFFSET_TIME.

Параметры:
text — разбираемый текст, например "10:15:30+01:00", не null
Возвращает:
разобранное местное время, не null
Выбрасывает:
DateTimeParseException — если текст не удаётся разобрать

parse

public static OffsetTime parse(CharSequence text, DateTimeFormatter formatter)
Создаёт экземпляр OffsetTime из текстовой строки с помощью указанного форматировщика.

Текст разбирается с помощью форматировщика, возвращающего время.

Параметры:
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
  • OFFSET_SECONDS
Для всех остальных экземпляров ChronoField возвращается false.

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

Определено в:
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
Для всех остальных экземпляров ChronoUnit возвращается false.

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

Определено в:
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, значения которых слишком велики для представления в виде int и приводят к выбросу UnsupportedTemporalTypeException. Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.

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

Определено в:
get в интерфейсе TemporalAccessor
Параметры:
field — поле, значение которого нужно получить, не null
Возвращает:
значение поля
Выбрасывает:
DateTimeException — если значение поля невозможно получить или оно выходит за допустимый диапазон значений поля
UnsupportedTemporalTypeException — если поле не поддерживается или диапазон значений не помещается в int
ArithmeticException — при переполнении числового значения

getLong

public long getLong(TemporalField field)
Получает значение указанного поля этого времени в виде long.

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

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

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

Определено в:
getLong в интерфейсе TemporalAccessor
Параметры:
field — поле, значение которого нужно получить, не null
Возвращает:
значение поля
Выбрасывает:
DateTimeException — если значение поля невозможно получить
UnsupportedTemporalTypeException — если поле не поддерживается
ArithmeticException — при переполнении числового значения

getOffset

public ZoneOffset getOffset()
Получает смещение часового пояса, например '+01:00'.

Это смещение местного времени относительно UTC/Гринвича.

Возвращает:
смещение часового пояса, не null

withOffsetSameLocal

public OffsetTime withOffsetSameLocal(ZoneOffset offset)
Возвращает копию этого OffsetTime с указанным смещением, сохраняя то же местное время.

Этот метод возвращает объект с тем же LocalTime и указанным ZoneOffset. Вычисления не требуются и не выполняются. Например, если это время представляет 10:30+02:00, а указанное смещение равно +03:00, метод вернёт 10:30+03:00.

Чтобы учесть разницу между смещениями и скорректировать поля времени, используйте withOffsetSameInstant(ZoneOffset).

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

Параметры:
offset — новое смещение часового пояса, не null
Возвращает:
OffsetTime на основе этого времени с запрошенным смещением, не null

withOffsetSameInstant

public OffsetTime withOffsetSameInstant(ZoneOffset offset)
Возвращает копию этого OffsetTime с указанным смещением, соответствующую тому же моменту времени в подразумеваемом дне.

Этот метод возвращает объект с указанным ZoneOffset и LocalTime, скорректированным на разницу между двумя смещениями. В результате старый и новый объекты представляют один и тот же момент времени в подразумеваемом дне. Это полезно для определения местного времени при другом смещении. Например, если это время представляет 10:30+02:00, а указанное смещение равно +03:00, метод вернёт 11:30+03:00.

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

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

Параметры:
offset — новое смещение часового пояса, не null
Возвращает:
OffsetTime на основе этого времени с запрошенным смещением, не null

toLocalTime

public LocalTime toLocalTime()
Получает компонент LocalTime этого значения даты и времени.

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

Возвращает:
компонент времени этого значения даты и времени, не 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 OffsetTime with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этого времени.

Возвращает OffsetTime на основе этого объекта с изменённым временем. Корректировка выполняется с помощью указанного объекта стратегии-корректировщика. Ознакомьтесь с документацией корректировщика, чтобы узнать, какие изменения будут внесены.

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

Классы LocalTime и ZoneOffset реализуют TemporalAdjuster, поэтому этот метод можно использовать для изменения времени или смещения:

 result = offsetTime.with(time);
 result = offsetTime.with(offset);

Результат этого метода получается вызовом метода TemporalAdjuster.adjustInto(Temporal) у указанного корректировщика с передачей this в качестве аргумента.

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

Определено в:
with в интерфейсе Temporal
Параметры:
adjuster — используемый корректировщик, не null
Возвращает:
OffsetTime на основе this с выполненной корректировкой, не null
Выбрасывает:
DateTimeException — если выполнить корректировку невозможно
ArithmeticException — при переполнении числового значения

with

public OffsetTime with(TemporalField field, long newValue)
Возвращает копию этого времени с указанным полем, установленным в новое значение.

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

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

Для поля OFFSET_SECONDS возвращается время с указанным смещением. Местное время не изменяется. Если новое значение смещения выходит за допустимый диапазон, выбрасывается DateTimeException.

Остальные supported fields работают так же, как соответствующий метод класса LocalTime.with(TemporalField, long) LocalTime}. В этом случае смещение не участвует в вычислении и остаётся без изменений.

Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.

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

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

Определено в:
with в интерфейсе Temporal
Параметры:
field — поле, которое нужно установить в результате, не null
newValue — новое значение поля в результате
Возвращает:
OffsetTime на основе this с установленным указанным полем, не null
Выбрасывает:
DateTimeException — если поле невозможно установить
UnsupportedTemporalTypeException — если поле не поддерживается
ArithmeticException — при переполнении числового значения

withHour

public OffsetTime withHour(int hour)
Возвращает копию этого OffsetTime с изменённым часом дня.

Смещение не влияет на вычисление и остаётся таким же в результате.

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

Параметры:
hour — час дня, который нужно установить в результате, от 0 до 23
Возвращает:
OffsetTime на основе этого времени с указанным часом, не null
Выбрасывает:
DateTimeException — если значение часа недопустимо

withMinute

public OffsetTime withMinute(int minute)
Возвращает копию этого OffsetTime с изменённой минутой часа.

Смещение не влияет на вычисление и остаётся таким же в результате.

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

Параметры:
minute — минута часа, которую нужно установить в результате, от 0 до 59
Возвращает:
OffsetTime на основе этого времени с указанной минутой, не null
Выбрасывает:
DateTimeException — если значение минуты недопустимо

withSecond

public OffsetTime withSecond(int second)
Возвращает копию этого OffsetTime с изменённой секундой минуты.

Смещение не влияет на вычисление и остаётся таким же в результате.

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

Параметры:
second — секунда минуты, которую нужно установить в результате, от 0 до 59
Возвращает:
OffsetTime на основе этого времени с указанной секундой, не null
Выбрасывает:
DateTimeException — если значение секунды недопустимо

withNano

public OffsetTime withNano(int nanoOfSecond)
Возвращает копию этого OffsetTime с изменённой наносекундой секунды.

Смещение не влияет на вычисление и остаётся таким же в результате.

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

Параметры:
nanoOfSecond — наносекунда секунды, которую нужно установить в результате, от 0 до 999,999,999
Возвращает:
OffsetTime на основе этого времени с указанной наносекундой, не null
Выбрасывает:
DateTimeException — если значение наносекунд недопустимо

truncatedTo

public OffsetTime truncatedTo(TemporalUnit unit)
Возвращает копию этого OffsetTime с усечённым временем.

При усечении создаётся копия исходного времени, в которой поля, меньшие указанной единицы измерения, устанавливаются в ноль. Например, усечение до minutes обнулит поля секунды минуты и наносекунды секунды.

Длительность единицы измерения должна без остатка делить продолжительность стандартного дня. Этому условию соответствуют все стандартные единицы измерения времени из ChronoUnit и DAYS. Для других единиц выбрасывается исключение.

Смещение не влияет на вычисление и остаётся таким же в результате.

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

Параметры:
unit — единица измерения, до которой нужно усечь время, не null
Возвращает:
OffsetTime на основе этого времени с усечённым временем, не null
Выбрасывает:
DateTimeException — если усечение невозможно
UnsupportedTemporalTypeException — если единица измерения не поддерживается

plus

public OffsetTime plus(TemporalAmount amountToAdd)
Возвращает копию этого времени с добавленной указанной величиной.

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

Вычисление делегируется объекту величины вызовом TemporalAmount.addTo(Temporal). Реализация величины может выполнять сложение любым способом, однако обычно она вызывает plus(long, TemporalUnit). Обратитесь к документации реализации величины, чтобы узнать, можно ли успешно выполнить сложение.

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

Указано в:
plus в интерфейсе Temporal
Параметры:
amountToAdd - величина для добавления, не null
Возвращает:
OffsetTime на основе этого времени с выполненным сложением, не null
Исключения:
DateTimeException - если сложение невозможно выполнить
ArithmeticException - при переполнении числового значения

plus

public OffsetTime plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого времени с добавленной указанной величиной.

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

Если поле представляет собой ChronoUnit, сложение выполняется методом LocalTime.plus(long, TemporalUnit). Смещение не участвует в вычислении и останется неизменным в результате.

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

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

Указано в:
plus в интерфейсе Temporal
Параметры:
amountToAdd - величина в единицах измерения, которую нужно добавить к результату; может быть отрицательной
unit - единица измерения добавляемой величины, не null
Возвращает:
OffsetTime на основе этого времени с добавленной указанной величиной, не null
Исключения:
DateTimeException - если сложение невозможно выполнить
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - при переполнении числового значения

plusHours

public OffsetTime plusHours(long hours)
Возвращает копию этого OffsetTime с добавленным указанным количеством часов.

Добавляет указанное количество часов к этому времени и возвращает новое время. Вычисление выполняется по кругу через полночь.

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

Параметры:
hours - количество добавляемых часов; может быть отрицательным
Возвращает:
OffsetTime на основе этого времени с добавленными часами, не null

plusMinutes

public OffsetTime plusMinutes(long minutes)
Возвращает копию этого OffsetTime с добавленным указанным количеством минут.

Добавляет указанное количество минут к этому времени и возвращает новое время. Вычисление выполняется по кругу через полночь.

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

Параметры:
minutes - количество добавляемых минут; может быть отрицательным
Возвращает:
OffsetTime на основе этого времени с добавленными минутами, не null

plusSeconds

public OffsetTime plusSeconds(long seconds)
Возвращает копию этого OffsetTime с добавленным указанным количеством секунд.

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

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

Параметры:
seconds - количество добавляемых секунд; может быть отрицательным
Возвращает:
OffsetTime на основе этого времени с добавленными секундами, не null

plusNanos

public OffsetTime plusNanos(long nanos)
Возвращает копию этого OffsetTime с добавленным указанным количеством наносекунд.

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

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

Параметры:
nanos - количество добавляемых наносекунд; может быть отрицательным
Возвращает:
OffsetTime на основе этого времени с добавленными наносекундами, не null

minus

public OffsetTime minus(TemporalAmount amountToSubtract)
Возвращает копию этого времени с вычтенной указанной величиной.

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

Вычисление делегируется объекту величины вызовом TemporalAmount.subtractFrom(Temporal). Реализация величины может выполнять вычитание любым способом, однако обычно она вызывает minus(long, TemporalUnit). Обратитесь к документации реализации величины, чтобы узнать, можно ли успешно выполнить вычитание.

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

Указано в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract - величина для вычитания, не null
Возвращает:
OffsetTime на основе этого времени с выполненным вычитанием, не null
Исключения:
DateTimeException - если вычитание невозможно выполнить
ArithmeticException - при переполнении числового значения

minus

public OffsetTime minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого времени с вычтенной указанной величиной.

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

Этот метод эквивалентен plus(long, TemporalUnit) с величиной, взятой с противоположным знаком. Полное описание того, как выполняется сложение и, следовательно, вычитание, см. в документации этого метода.

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

Указано в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract - величина в единицах измерения, которую нужно вычесть из результата; может быть отрицательной
unit - единица измерения вычитаемой величины, не null
Возвращает:
OffsetTime на основе этого времени с вычтенной указанной величиной, не null
Исключения:
DateTimeException - если вычитание невозможно выполнить
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - при переполнении числового значения

minusHours

public OffsetTime minusHours(long hours)
Возвращает копию этого OffsetTime с вычтенным указанным количеством часов.

Вычитает указанное количество часов из этого времени и возвращает новое время. Вычисление выполняется по кругу через полночь.

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

Параметры:
hours - количество вычитаемых часов; может быть отрицательным
Возвращает:
OffsetTime на основе этого времени с вычтенными часами, не null

minusMinutes

public OffsetTime minusMinutes(long minutes)
Возвращает копию этого OffsetTime с вычтенным указанным количеством минут.

Вычитает указанное количество минут из этого времени и возвращает новое время. Вычисление выполняется по кругу через полночь.

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

Параметры:
minutes - количество вычитаемых минут; может быть отрицательным
Возвращает:
OffsetTime на основе этого времени с вычтенными минутами, не null

minusSeconds

public OffsetTime minusSeconds(long seconds)
Возвращает копию этого OffsetTime с вычтенным указанным количеством секунд.

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

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

Параметры:
seconds - количество вычитаемых секунд; может быть отрицательным
Возвращает:
OffsetTime на основе этого времени с вычтенными секундами, не null

minusNanos

public OffsetTime minusNanos(long nanos)
Возвращает копию этого OffsetTime с вычтенным указанным количеством наносекунд.

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

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

Параметры:
nanos - количество вычитаемых наносекунд; может быть отрицательным
Возвращает:
OffsetTime на основе этого времени с вычтенными наносекундами, не null

query

public <R> R query(TemporalQuery<R> query)
Выполняет запрос к этому времени с помощью указанного запроса.

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

Результат этого метода получается вызовом метода TemporalQuery.queryFrom(TemporalAccessor) указанного запроса с передачей this в качестве аргумента.

Указано в:
query в интерфейсе TemporalAccessor
Параметры типа:
R - тип результата
Параметры:
query - запрос для выполнения, не null
Возвращает:
результат запроса; может быть возвращено значение null (определяется запросом)
Исключения:
DateTimeException - если выполнить запрос невозможно (определяется запросом)
ArithmeticException - при переполнении числового значения (определяется запросом)

adjustInto

public Temporal adjustInto(Temporal temporal)
Настраивает указанный объект времени так, чтобы его смещение и время совпадали с этим объектом.

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

Настройка эквивалентна двукратному использованию Temporal.with(TemporalField, long) с передачей ChronoField.NANO_OF_DAY и ChronoField.OFFSET_SECONDS в качестве полей.

В большинстве случаев понятнее поменять порядок вызова и использовать Temporal.with(TemporalAdjuster):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisOffsetTime.adjustInto(temporal);
  temporal = temporal.with(thisOffsetTime);

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

Указано в:
adjustInto в интерфейсе TemporalAdjuster
Параметры:
temporal - целевой объект для настройки, не null
Возвращает:
настроенный объект, не null
Исключения:
DateTimeException - если выполнить настройку невозможно
ArithmeticException - при переполнении числового значения

until

public long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет время до другого момента времени в указанных единицах измерения.

Вычисляет время между двумя объектами OffsetTime в единицах одной TemporalUnit. Начальной и конечной точками являются this и указанное время. Результат будет отрицательным, если конечная точка предшествует начальной. Например, время в часах между двумя моментами можно вычислить с помощью startTime.until(endTime, HOURS).

Переданный этому методу Temporal преобразуется в OffsetTime с помощью from(TemporalAccessor). Если смещения двух моментов различаются, указанное конечное время нормализуется так, чтобы его смещение совпадало со смещением этого времени.

Вычисление возвращает целое число, представляющее количество полных единиц между двумя моментами времени. Например, время в часах между 11:30Z и 13:29Z составит всего один час, поскольку до двух часов не хватает одной минуты.

Этот метод можно использовать двумя эквивалентными способами. Первый — вызвать данный метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):

  // these two lines are equivalent
  amount = start.until(end, MINUTES);
  amount = MINUTES.between(start, end);
Выбор следует сделать исходя из того, какой вариант делает код понятнее.

Вычисление для ChronoUnit выполняется в этом методе. Поддерживаются единицы NANOS, MICROS, MILLIS, SECONDS, MINUTES, HOURS и HALF_DAYS. Другие значения ChronoUnit приведут к выбросу исключения.

Если единица измерения не является ChronoUnit, результат этого метода получается вызовом TemporalUnit.between(Temporal, Temporal) с передачей this в качестве первого аргумента, а преобразованного входного объекта времени — в качестве второго аргумента.

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

Указано в:
until в интерфейсе Temporal
Параметры:
endExclusive - конечное время, не включаемое в интервал; преобразуется в OffsetTime, не null
unit - единица измерения для вычисления величины, не null
Возвращает:
время между этим временем и конечным временем
Исключения:
DateTimeException - если величину невозможно вычислить или конечный объект времени невозможно преобразовать в OffsetTime
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - при переполнении числового значения

format

public String format(DateTimeFormatter formatter)
Форматирует это время с помощью указанного форматировщика.

Это время передается форматировщику для преобразования в строку.

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

atDate

public OffsetDateTime atDate(LocalDate date)
Объединяет это время с датой, создавая OffsetDateTime.

Возвращает OffsetDateTime, образованный этим временем и указанной датой. Допустимы все возможные сочетания даты и времени.

Параметры:
date - дата для объединения, не null
Возвращает:
дата и время со смещением, образованные этим временем и указанной датой, не null

toEpochSecond

public long toEpochSecond(LocalDate date)
Преобразует этот OffsetTime в количество секунд с начала эпохи 1970-01-01T00:00:00Z.

Объединяет это время со смещением с указанной датой, чтобы вычислить значение в секундах от эпохи — количество секунд, прошедших с 1970-01-01T00:00:00Z. Моменты на временной шкале после эпохи имеют положительные значения, а более ранние — отрицательные.

Параметры:
date - местная дата, не null
Возвращает:
количество секунд с начала эпохи 1970-01-01T00:00:00Z; может быть отрицательным
Начиная с версии:
9

compareTo

public int compareTo(OffsetTime other)
Сравнивает это OffsetTime с другим временем.

Сначала сравниваются эквивалентные моменты времени в UTC, затем местное время. Сравнение «согласовано с equals» в соответствии с определением Comparable.

Например, порядок сравнения будет следующим:

  1. 10:30+01:00
  2. 11:00+01:00
  3. 12:00+02:00
  4. 11:30+01:00
  5. 12:00+01:00
  6. 12:30+01:00
Значения #2 и #3 представляют один и тот же момент на временной шкале. Если два значения представляют один и тот же момент, для их различения сравнивается местное время. Этот шаг необходим, чтобы порядок сравнения был согласован с equals().

Чтобы сравнить лежащее в основе местное время двух экземпляров TemporalAccessor, используйте в качестве компаратора ChronoField.NANO_OF_DAY.

Указано в:
compareTo в интерфейсе Comparable<OffsetTime>
Параметры:
other - другое время для сравнения, не null
Возвращает:
значение сравнения: сравнение эквивалентных моментов времени в UTC other, если они не равны; если эквивалентные моменты времени в UTC other равны, сравнение этого местного времени с местным временем other
См. также:
  • isBefore(OffsetTime)
  • isAfter(OffsetTime)

isAfter

public boolean isAfter(OffsetTime other)
Проверяет, наступает ли момент этого OffsetTime позже указанного времени, если применить оба времени к одной дате.

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

Параметры:
other - другое время для сравнения, не null
Возвращает:
true, если этот момент наступает позже момента указанного времени

isBefore

public boolean isBefore(OffsetTime other)
Проверяет, наступает ли момент этого OffsetTime раньше указанного времени, если применить оба времени к одной дате.

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

Параметры:
other - другое время для сравнения, не null
Возвращает:
true, если этот момент наступает раньше момента указанного времени

isEqual

public boolean isEqual(OffsetTime other)
Проверяет, совпадает ли момент этого OffsetTime с моментом указанного времени, если применить оба времени к одной дате.

Этот метод отличается от сравнения в compareTo(OffsetTime) и equals(Object) тем, что сравнивает только момент времени. Это эквивалентно преобразованию обоих значений времени в моменты времени с использованием одной даты и последующему сравнению этих моментов.

Параметры:
other - другое время для сравнения, не null
Возвращает:
true, если этот момент совпадает с моментом указанного времени

equals

public boolean equals(Object obj)
Проверяет, равно ли это время другому времени.

Сравнение основано на местном времени и смещении. Чтобы проверить, совпадают ли моменты на временной шкале, используйте isEqual(OffsetTime).

Сравниваются только объекты типа OffsetTime; для объектов других типов возвращается false. Чтобы сравнить лежащее в основе местное время двух экземпляров TemporalAccessor, используйте в качестве компаратора ChronoField.NANO_OF_DAY.

Переопределяет:
equals в классе Object
Параметры:
obj - объект для проверки; для null возвращается false
Возвращает:
true, если это время равно другому времени
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хеш-код этого времени.
Переопределяет:
hashCode в классе Object
Возвращает:
подходящий хеш-код
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

toString

public String toString()
Представляет это время в виде String, например 10:15:30+01:00.

Результат будет представлен в одном из следующих форматов ISO-8601:

  • HH:mmXXXXX
  • HH:mm:ssXXXXX
  • HH:mm:ss.SSSXXXXX
  • HH:mm:ss.SSSSSSXXXXX
  • HH:mm:ss.SSSSSSSSSXXXXX
Используется самый короткий формат, позволяющий представить полное значение времени; подразумевается, что пропущенные части равны нулю.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого времени, не null

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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