Класс OffsetTime
- Все реализуемые интерфейсы:
Serializable, Comparable<OffsetTime>, Temporal, TemporalAccessor, TemporalAdjuster
public final class OffsetTime extends Object implements Temporal, TemporalAdjuster, Comparable<OffsetTime>, Serializable
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 |
Изменяет указанный временной объект так, чтобы его смещение и время совпадали с этим объектом. |
OffsetDateTime |
atDate |
Объединяет это время с датой, создавая OffsetDateTime. |
int |
compareTo |
Сравнивает этот OffsetTime с другим временем. |
boolean |
equals |
Проверяет, совпадает ли это время с другим временем. |
String |
format |
Форматирует это время с помощью указанного форматировщика. |
static OffsetTime |
from |
Получает экземпляр OffsetTime из временного объекта. |
int |
get |
Возвращает значение указанного поля этого времени в виде int. |
int |
getHour() |
Возвращает значение поля «час дня». |
long |
getLong |
Возвращает значение указанного поля этого времени в виде long. |
int |
getMinute() |
Возвращает значение поля «минута часа». |
int |
getNano() |
Возвращает значение поля «наносекунда секунды». |
ZoneOffset |
getOffset() |
Возвращает смещение часового пояса, например '+01:00'. |
int |
getSecond() |
Возвращает значение поля «секунда минуты». |
int |
hashCode() |
Хеш-код этого времени. |
boolean |
isAfter |
Проверяет, наступает ли момент времени этого OffsetTime позже момента времени, заданного указанным временем, если применить оба времени к одной дате. |
boolean |
isBefore |
Проверяет, наступает ли момент времени этого OffsetTime раньше момента времени, заданного указанным временем, если применить оба времени к одной дате. |
boolean |
isEqual |
Проверяет, совпадает ли момент времени этого OffsetTime с моментом времени, заданным указанным временем, если применить оба времени к одной дате. |
boolean |
isSupported |
Проверяет, поддерживается ли указанное поле. |
boolean |
isSupported |
Проверяет, поддерживается ли указанная единица измерения. |
OffsetTime |
minus |
Возвращает копию этого времени с вычтенным указанным значением. |
OffsetTime |
minus |
Возвращает копию этого времени с вычтенным указанным значением. |
OffsetTime |
minusHours |
Возвращает копию этого OffsetTime, уменьшенную на указанное количество часов. |
OffsetTime |
minusMinutes |
Возвращает копию этого OffsetTime, уменьшенную на указанное количество минут. |
OffsetTime |
minusNanos |
Возвращает копию этого OffsetTime, уменьшенную на указанное количество наносекунд. |
OffsetTime |
minusSeconds |
Возвращает копию этого OffsetTime, уменьшенную на указанное количество секунд. |
static OffsetTime |
now() |
Получает текущее время по системным часам в часовом поясе по умолчанию. |
static OffsetTime |
now |
Получает текущее время по указанным часам. |
static OffsetTime |
now |
Получает текущее время по системным часам в указанном часовом поясе. |
static OffsetTime |
of |
Получает экземпляр OffsetTime по значениям часа, минуты, секунды и наносекунды. |
static OffsetTime |
of |
Получает экземпляр OffsetTime по локальному времени и смещению. |
static OffsetTime |
ofInstant |
Получает экземпляр OffsetTime по Instant и идентификатору часового пояса. |
static OffsetTime |
parse |
Получает экземпляр OffsetTime из текстовой строки, например 10:15:30+01:00. |
static OffsetTime |
parse |
Получает экземпляр OffsetTime из текстовой строки с использованием указанного форматировщика. |
OffsetTime |
plus |
Возвращает копию этого времени с прибавленным указанным значением. |
OffsetTime |
plus |
Возвращает копию этого времени с прибавленным указанным значением. |
OffsetTime |
plusHours |
Возвращает копию этого OffsetTime, увеличенную на указанное количество часов. |
OffsetTime |
plusMinutes |
Возвращает копию этого OffsetTime, увеличенную на указанное количество минут. |
OffsetTime |
plusNanos |
Возвращает копию этого OffsetTime, увеличенную на указанное количество наносекунд. |
OffsetTime |
plusSeconds |
Возвращает копию этого OffsetTime, увеличенную на указанное количество секунд. |
<R> R |
query |
Выполняет запрос к этому времени с помощью указанного запроса. |
ValueRange |
range |
Возвращает диапазон допустимых значений указанного поля. |
long |
toEpochSecond |
Преобразует этот OffsetTime в количество секунд, прошедших с начала эпохи 1970-01-01T00:00:00Z. |
LocalTime |
toLocalTime() |
Возвращает компонент LocalTime этой даты и времени. |
String |
toString() |
Представляет это время в виде String, например 10:15:30+01:00. |
OffsetTime |
truncatedTo |
Возвращает копию этого OffsetTime с усечённым временем. |
long |
until |
Вычисляет промежуток времени до другого времени в указанных единицах измерения. |
OffsetTime |
with |
Возвращает скорректированную копию этого времени. |
OffsetTime |
with |
Возвращает копию этого времени, в которой указанному полю присвоено новое значение. |
OffsetTime |
withHour |
Возвращает копию этого OffsetTime с изменённым значением часа дня. |
OffsetTime |
withMinute |
Возвращает копию этого OffsetTime с изменённым значением минуты часа. |
OffsetTime |
withNano |
Возвращает копию этого OffsetTime с изменённым значением наносекунды секунды. |
OffsetTime |
withOffsetSameInstant |
Возвращает копию этого OffsetTime с указанным смещением, гарантируя, что результат соответствует тому же моменту времени в подразумеваемый день. |
OffsetTime |
withOffsetSameLocal |
Возвращает копию этого OffsetTime с указанным смещением, гарантируя, что локальное время результата останется прежним. |
OffsetTime |
withSecond |
Возвращает копию этого OffsetTime с изменённым значением секунды минуты. |
Подробное описание полей
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)
Проверяет, можно ли получить из этого времени значение указанного поля. Если возвращается false, вызовы методов range, get и with(TemporalField, long) приведут к выбросу исключения.
Если поле относится к типу ChronoField, запрос обрабатывается здесь. Поддерживаются следующие поля:
-
NANO_OF_SECOND -
NANO_OF_DAY -
MICRO_OF_SECOND -
MICRO_OF_DAY -
MILLI_OF_SECOND -
MILLI_OF_DAY -
SECOND_OF_MINUTE -
SECOND_OF_DAY -
MINUTE_OF_HOUR -
MINUTE_OF_DAY -
HOUR_OF_AMPM -
CLOCK_HOUR_OF_AMPM -
HOUR_OF_DAY -
CLOCK_HOUR_OF_DAY -
AMPM_OF_DAY -
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()
Это смещение местного времени относительно 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.
Например, порядок сортировки будет следующим:
10:30+01:0011:00+01:0012:00+02:0011:30+01:0012:00+01:0012:30+01:00
equals(). Чтобы сравнить местное время двух экземпляров TemporalAccessor, используйте ChronoField.NANO_OF_DAY в качестве компаратора.
- Определено в:
-
compareToв интерфейсеComparable<OffsetTime> - Параметры:
-
other— другое сравниваемое время, не null - Возвращает:
- значение компаратора: сравнение соответствующих моментов
otherв UTC, если они не равны; если соответствующие моментыotherв UTC равны — сравнение местного времени этого объекта с местным временемother - См. также:
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 в качестве компаратора.
hashCode
toString
public String toString()
String, например 10:15:30+01:00. Результат будет соответствовать одному из следующих форматов ISO-8601:
HH:mmXXXXXHH:mm:ssXXXXXHH:mm:ss.SSSXXXXXHH:mm:ss.SSSSSSXXXXXHH:mm:ss.SSSSSSSSSXXXXX
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/OffsetTime.html