Spec-Zone.ru › OpenJDK 24

Класс 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 с изменённой секундой.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

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)
Проверяет, поддерживается ли указанная единица.

Это проверяет, можно ли добавить или вычесть указанную единицу из этого смещённого времени. Если значение false, то вызов методов 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(java.time.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(java.time.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

с

public OffsetTime with(TemporalAdjuster adjuster)
Возвращает скопированное время с внесённой корректировкой.

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

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

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

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

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

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

Указано в:
with в интерфейсе Temporal
Параметры:
adjuster - корректировщик для использования, не null
Возвращает:
скопированное время, основанное на текущем с произведённой корректировкой, не null
Исключения:
DateTimeException - если корректировка не может быть выполнена
ArithmeticException - если происходит переполнение числовых значений

с

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

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

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

Поле OFFSET_SECONDS вернёт время со специфицированным смещением. Локальное время не изменяется. Если новое значение смещения находится за пределами допустимого диапазона, будет выброшено исключение DateTimeException.

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

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

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

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

Указано в:
with в интерфейсе Temporal
Параметры:
field - поле для установки в результате, не null
newValue - новое значение поля в результате
Возвращает:
скопированное время, основанное на текущем, с указанным полем, установленным, не null
Исключения:
DateTimeException - если поле не может быть установлено
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение числовых значений

withHour

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

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

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

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

withMinute

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

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

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

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

withSecond

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

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

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

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

withNano

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

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

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

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

truncatedTo

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

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

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

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

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

Параметры:
unit - единица для усечения, не null
Возвращает:
скопированное время, основанное на текущем, с усечённым временем, не null
Исключения:
DateTimeException - если усечение невозможно
UnsupportedTemporalTypeException - если единица не поддерживается

плюс

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

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

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

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

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

plus

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

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

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

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

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

Specified by:
plus в интерфейсе Temporal
Parameters:
amountToAdd - количество единиц для добавления к результату, может быть отрицательным
unit - единица количества для добавления, не null
Returns:
OffsetTime, основанная на этом времени с добавленным указанным значением, не null
Throws:
DateTimeException - если добавление невозможно
UnsupportedTemporalTypeException - если единица не поддерживается
ArithmeticException - если происходит переполнение чисел

plusHours

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

Это добавляет указанное количество часов к этому времени, возвращая новое время. Расчёт цикличен относительно полуночи.

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

Parameters:
hours - количество часов для добавления, может быть отрицательным
Returns:
OffsetTime, основанная на этом времени с добавленными часами, не null

plusMinutes

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

Это добавляет указанное количество минут к этому времени, возвращая новое время. Расчёт цикличен относительно полуночи.

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

Parameters:
minutes - количество минут для добавления, может быть отрицательным
Returns:
OffsetTime, основанная на этом времени с добавленными минутами, не null

plusSeconds

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

Это добавляет указанное количество секунд к этому времени, возвращая новое время. Расчёт цикличен относительно полуночи.

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

Parameters:
seconds - количество секунд для добавления, может быть отрицательным
Returns:
OffsetTime, основанная на этом времени с добавленными секундами, не null

plusNanos

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

Это добавляет указанное количество наносекунд к этому времени, возвращая новое время. Расчёт цикличен относительно полуночи.

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

Parameters:
nanos - количество наносекунд для добавления, может быть отрицательным
Returns:
OffsetTime, основанная на этом времени с добавленными наносекундами, не null

minus

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

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

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

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

Specified by:
minus в интерфейсе Temporal
Parameters:
amountToSubtract - значение для вычитания, не null
Returns:
OffsetTime, основанная на этом времени с выполненным вычитанием, не null
Throws:
DateTimeException - если вычитание невозможно
ArithmeticException - если происходит переполнение чисел

minus

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

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

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

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

Specified by:
minus в интерфейсе Temporal
Parameters:
amountToSubtract - количество единиц для вычитания из результата, может быть отрицательным
unit - единица количества для вычитания, не null
Returns:
OffsetTime, основанная на этом времени с вычтенным указанным значением, не null
Throws:
DateTimeException - если вычитание невозможно
UnsupportedTemporalTypeException - если единица не поддерживается
ArithmeticException - если происходит переполнение чисел

minusHours

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

Это вычитает указанное количество часов из этого времени, возвращая новое время. Расчёт цикличен относительно полуночи.

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

Parameters:
hours - количество часов для вычитания, может быть отрицательным
Returns:
OffsetTime, основанная на этом времени с вычтенными часами, не null

minusMinutes

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

Это вычитает указанное количество минут из этого времени, возвращая новое время. Расчёт цикличен относительно полуночи.

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

Parameters:
minutes - количество минут для вычитания, может быть отрицательным
Returns:
OffsetTime, основанная на этом времени с вычтенными минутами, не null

minusSeconds

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

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

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

Parameters:
seconds - количество секунд для вычитания, может быть отрицательным
Returns:
OffsetTime, основанная на этом времени с вычтенными секундами, не null

minusNanos

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

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

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

Parameters:
nanos - количество наносекунд для вычитания, может быть отрицательным
Returns:
OffsetTime, основанная на этом времени с вычтенными наносекундами, не null

запрос

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 - если происходит переполнение числовых значений

до

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 - если происходит переполнение числовых значений

форматировать

public String format(DateTimeFormatter formatter)
Форматирует это время, используя указанный форматер.

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

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

atDate

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

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

Параметры:
date - дата для объединения, не null
Возвращает:
OffsetDateTime, образованный из этого времени и указанной даты, не 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(java.time.OffsetTime)
  • isAfter(java.time.OffsetTime)

isAfter

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

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

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

isBefore

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

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

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

isEqual

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

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

Parameters:
other - другое время для сравнения, не null
Returns:
true, если это равно мгновению указанного времени

equals

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

Сравнение основано на локальном времени и смещении. Для сравнения одного и того же момента времени на временной шкале используйте isEqual(OffsetTime).

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

Overrides:
equals в классе Object
Parameters:
obj - объект для проверки, null возвращает false
Returns:
true, если это равно другому времени
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хеш-код для этого времени.
Overrides:
hashCode в классе Object
Returns:
подходящий хеш-код
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.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
Использованный формат будет самым коротким, который выводит полное значение времени, где пропущенные части подразумеваются как нулевые.
Overrides:
toString в классе Object
Returns:
строковое представление этого времени, не null

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/OffsetTime.html

Spec-Zone.ru

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