Spec-Zone.ru › OpenJDK 25

Класс OffsetDateTime

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

OffsetDateTime — неизменяемое представление даты и времени со смещением. Этот класс хранит все поля даты и времени с точностью до наносекунд, а также смещение относительно UTC/Гринвича. Например, значение «2 октября 2007 года в 13:45:30.123456789 +02:00» может храниться в OffsetDateTime.

OffsetDateTime, ZonedDateTime и Instant хранят момент времени на временной шкале с точностью до наносекунд. Instant — самый простой тип, представляющий только момент времени. OffsetDateTime дополняет момент времени смещением относительно UTC/Гринвича, что позволяет получить местную дату и время. ZonedDateTime добавляет полные правила часового пояса.

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

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

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

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

Модификатор и тип Поле Описание
static final OffsetDateTime MAX
Максимальное поддерживаемое значение OffsetDateTime: «+999999999-12-31T23:59:59.999999999-18:00».
static final OffsetDateTime MIN
Минимальное поддерживаемое значение OffsetDateTime: «-999999999-01-01T00:00:00+18:00».

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

Модификатор и тип Метод Описание
Temporal adjustInto(Temporal temporal)
Изменяет указанный объект временных данных так, чтобы его смещение, дата и время совпадали с этим объектом.
ZonedDateTime atZoneSameInstant(ZoneId zone)
Объединяет эти дату и время с часовым поясом, создавая ZonedDateTime и обеспечивая сохранение того же момента времени в результате.
ZonedDateTime atZoneSimilarLocal(ZoneId zone)
Объединяет эти дату и время с часовым поясом, создавая ZonedDateTime, стараясь сохранить ту же местную дату и время.
int compareTo(OffsetDateTime other)
Сравнивает эти дату и время с другими датой и временем.
boolean equals(Object obj)
Проверяет, равны ли эти дата и время другим дате и времени.
String format(DateTimeFormatter formatter)
Форматирует эти дату и время с помощью указанного средства форматирования.
static OffsetDateTime from(TemporalAccessor temporal)
Получает экземпляр OffsetDateTime из объекта временных данных.
int get(TemporalField field)
Возвращает значение указанного поля этих даты и времени в виде int.
int getDayOfMonth()
Возвращает поле дня месяца.
DayOfWeek getDayOfWeek()
Возвращает поле дня недели, представленное перечислением DayOfWeek.
int getDayOfYear()
Возвращает поле дня года.
int getHour()
Возвращает поле часа суток.
long getLong(TemporalField field)
Возвращает значение указанного поля этих даты и времени в виде long.
int getMinute()
Возвращает поле минуты часа.
Month getMonth()
Возвращает поле месяца года с помощью перечисления Month.
int getMonthValue()
Возвращает поле месяца года в диапазоне от 1 до 12.
int getNano()
Возвращает поле наносекунды секунды.
ZoneOffset getOffset()
Возвращает смещение часового пояса, например «+01:00».
int getSecond()
Возвращает поле секунды минуты.
int getYear()
Возвращает поле года.
int hashCode()
Хэш-код этих даты и времени.
boolean isAfter(OffsetDateTime other)
Проверяет, наступает ли момент времени этих даты и времени позже момента времени указанных даты и времени.
boolean isBefore(OffsetDateTime other)
Проверяет, наступает ли момент времени этих даты и времени раньше момента времени указанных даты и времени.
boolean isEqual(OffsetDateTime other)
Проверяет, совпадает ли момент времени этих даты и времени с моментом времени указанных даты и времени.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица измерения.
OffsetDateTime minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этих даты и времени с вычтенным указанным значением.
OffsetDateTime minus(TemporalAmount amountToSubtract)
Возвращает копию этих даты и времени с вычтенным указанным значением.
OffsetDateTime minusDays(long days)
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством дней.
OffsetDateTime minusHours(long hours)
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством часов.
OffsetDateTime minusMinutes(long minutes)
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством минут.
OffsetDateTime minusMonths(long months)
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством месяцев.
OffsetDateTime minusNanos(long nanos)
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством наносекунд.
OffsetDateTime minusSeconds(long seconds)
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством секунд.
OffsetDateTime minusWeeks(long weeks)
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством недель.
OffsetDateTime minusYears(long years)
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством лет.
static OffsetDateTime now()
Получает текущие дату и время по системным часам в часовом поясе по умолчанию.
static OffsetDateTime now(Clock clock)
Получает текущие дату и время по указанным часам.
static OffsetDateTime now(ZoneId zone)
Получает текущие дату и время по системным часам в указанном часовом поясе.
static OffsetDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
Получает экземпляр OffsetDateTime из года, месяца, дня, часа, минуты, секунды, наносекунды и смещения.
static OffsetDateTime of(LocalDate date, LocalTime time, ZoneOffset offset)
Получает экземпляр OffsetDateTime из даты, времени и смещения.
static OffsetDateTime of(LocalDateTime dateTime, ZoneOffset offset)
Получает экземпляр OffsetDateTime из даты и времени, а также смещения.
static OffsetDateTime ofInstant(Instant instant, ZoneId zone)
Получает экземпляр OffsetDateTime из Instant и идентификатора часового пояса.
static OffsetDateTime parse(CharSequence text)
Получает экземпляр OffsetDateTime из текстовой строки, например 2007-12-03T10:15:30+01:00.
static OffsetDateTime parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр OffsetDateTime из текстовой строки с помощью указанного средства форматирования.
OffsetDateTime plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этих даты и времени с добавленным указанным значением.
OffsetDateTime plus(TemporalAmount amountToAdd)
Возвращает копию этих даты и времени с добавленным указанным значением.
OffsetDateTime plusDays(long days)
Возвращает копию этого OffsetDateTime с добавленным указанным количеством дней.
OffsetDateTime plusHours(long hours)
Возвращает копию этого OffsetDateTime с добавленным указанным количеством часов.
OffsetDateTime plusMinutes(long minutes)
Возвращает копию этого OffsetDateTime с добавленным указанным количеством минут.
OffsetDateTime plusMonths(long months)
Возвращает копию этого OffsetDateTime с добавленным указанным количеством месяцев.
OffsetDateTime plusNanos(long nanos)
Возвращает копию этого OffsetDateTime с добавленным указанным количеством наносекунд.
OffsetDateTime plusSeconds(long seconds)
Возвращает копию этого OffsetDateTime с добавленным указанным количеством секунд.
OffsetDateTime plusWeeks(long weeks)
Возвращает копию этого OffsetDateTime с добавленным указанным количеством недель.
OffsetDateTime plusYears(long years)
Возвращает копию этого OffsetDateTime с добавленным указанным количеством лет.
<R> R query(TemporalQuery<R> query)
Выполняет запрос к этим дате и времени с помощью указанного запроса.
ValueRange range(TemporalField field)
Возвращает диапазон допустимых значений указанного поля.
static Comparator<OffsetDateTime> timeLineOrder()
Возвращает компаратор, который сравнивает два экземпляра OffsetDateTime исключительно по моменту времени.
long toEpochSecond()
Преобразует эти дату и время в количество секунд, прошедших с эпохи 1970-01-01T00:00:00Z.
Instant toInstant()
Преобразует эти дату и время в Instant.
LocalDate toLocalDate()
Возвращает часть LocalDate этих даты и времени.
LocalDateTime toLocalDateTime()
Возвращает часть LocalDateTime этих даты и времени.
LocalTime toLocalTime()
Возвращает часть LocalTime этих даты и времени.
OffsetTime toOffsetTime()
Преобразует эти дату и время в OffsetTime.
String toString()
Выводит эти дату и время в виде String, например 2007-12-03T10:15:30+01:00.
ZonedDateTime toZonedDateTime()
Преобразует эти дату и время в ZonedDateTime, используя смещение в качестве идентификатора часового пояса.
OffsetDateTime truncatedTo(TemporalUnit unit)
Возвращает копию этого OffsetDateTime с усечённым временем.
long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет время до других даты и времени в единицах указанной величины.
OffsetDateTime with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этих даты и времени.
OffsetDateTime with(TemporalField field, long newValue)
Возвращает копию этих даты и времени с указанным полем, установленным в новое значение.
OffsetDateTime withDayOfMonth(int dayOfMonth)
Возвращает копию этого OffsetDateTime с изменённым днём месяца.
OffsetDateTime withDayOfYear(int dayOfYear)
Возвращает копию этого OffsetDateTime с изменённым днём года.
OffsetDateTime withHour(int hour)
Возвращает копию этого OffsetDateTime с изменённым часом суток.
OffsetDateTime withMinute(int minute)
Возвращает копию этого OffsetDateTime с изменённой минутой часа.
OffsetDateTime withMonth(int month)
Возвращает копию этого OffsetDateTime с изменённым месяцем года.
OffsetDateTime withNano(int nanoOfSecond)
Возвращает копию этого OffsetDateTime с изменённой наносекундой секунды.
OffsetDateTime withOffsetSameInstant(ZoneOffset offset)
Возвращает копию этого OffsetDateTime с указанным смещением, обеспечивая сохранение того же момента времени в результате.
OffsetDateTime withOffsetSameLocal(ZoneOffset offset)
Возвращает копию этого OffsetDateTime с указанным смещением, обеспечивая сохранение той же местной даты и времени в результате.
OffsetDateTime withSecond(int second)
Возвращает копию этого OffsetDateTime с изменённой секундой минуты.
OffsetDateTime withYear(int year)
Возвращает копию этого OffsetDateTime с изменённым годом.

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

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

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

MIN

public static final OffsetDateTime MIN
Минимальное поддерживаемое OffsetDateTime, '-999999999-01-01T00:00:00+18:00'. Это локальные дата и время полуночи в начале минимальной даты при максимальном смещении (большие смещения соответствуют более раннему времени на временной шкале). Объединяет LocalDateTime.MIN и ZoneOffset.MAX. Приложение может использовать это значение как дату и время «далёкого прошлого».

MAX

public static final OffsetDateTime MAX
Максимальное поддерживаемое OffsetDateTime, '+999999999-12-31T23:59:59.999999999-18:00'. Это локальные дата и время непосредственно перед полуночью в конце максимальной даты при минимальном смещении (большие отрицательные смещения соответствуют более позднему времени на временной шкале). Объединяет LocalDateTime.MAX и ZoneOffset.MIN. Приложение может использовать это значение как дату и время «далёкого будущего».

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

timeLineOrder

public static Comparator<OffsetDateTime> timeLineOrder()
Возвращает компаратор, сравнивающий два экземпляра OffsetDateTime исключительно по моменту времени.

Этот метод отличается от сравнения в compareTo(OffsetDateTime) тем, что сравнивает только базовый момент времени.

Возвращает:
компаратор, выполняющий сравнение в порядке временной шкалы
См. также:
  • isAfter(OffsetDateTime)
  • isBefore(OffsetDateTime)
  • isEqual(OffsetDateTime)

now

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

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

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

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

now

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

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

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

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

now

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

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

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

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

of

public static OffsetDateTime of(LocalDate date, LocalTime time, ZoneOffset offset)
Создаёт экземпляр OffsetDateTime на основе даты, времени и смещения.

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

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

of

public static OffsetDateTime of(LocalDateTime dateTime, ZoneOffset offset)
Создаёт экземпляр OffsetDateTime на основе даты и времени и смещения.

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

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

of

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

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

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

Параметры:
year — год, от MIN_YEAR до MAX_YEAR
month — месяц года, от 1 (январь) до 12 (декабрь)
dayOfMonth — день месяца, от 1 до 31
hour — час дня, от 0 до 23
minute — минута часа, от 0 до 59
second — секунда минуты, от 0 до 59
nanoOfSecond — наносекунда секунды, от 0 до 999,999,999
offset — смещение часового пояса, не null
Возвращает:
дату и время со смещением, не null
Вызывает:
DateTimeException — если значение любого поля выходит за допустимый диапазон или день месяца недопустим для указанного месяца и года

ofInstant

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

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

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

from

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

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

Сначала преобразование извлекает из временного объекта ZoneOffset. Затем оно пытается извлечь LocalDateTime, а при необходимости использует Instant. В результате ZoneOffset объединяется с одним из значений: LocalDateTime или Instant. Реализациям разрешается выполнять оптимизации, например обращаться к полям, эквивалентным соответствующим объектам.

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

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

parse

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

Строка должна представлять допустимые дату и время; для её разбора используется DateTimeFormatter.ISO_OFFSET_DATE_TIME.

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

parse

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

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

Параметры:
text — текст для разбора, не null
formatter — форматировщик, который нужно использовать, не null
Возвращает:
разобранные дату и время со смещением, не null
Вызывает:
DateTimeParseException — если текст не удаётся разобрать

isSupported

public boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.

Проверяет, можно ли получить значение указанного поля из этих даты и времени. Если это не так, вызовы методов range, get и with(TemporalField, long) приведут к исключению.

Если поле является ChronoField, запрос обрабатывается здесь. Поддерживаются следующие поля:

  • NANO_OF_SECOND
  • NANO_OF_DAY
  • MICRO_OF_SECOND
  • MICRO_OF_DAY
  • MILLI_OF_SECOND
  • MILLI_OF_DAY
  • SECOND_OF_MINUTE
  • SECOND_OF_DAY
  • MINUTE_OF_HOUR
  • MINUTE_OF_DAY
  • HOUR_OF_AMPM
  • CLOCK_HOUR_OF_AMPM
  • HOUR_OF_DAY
  • CLOCK_HOUR_OF_DAY
  • AMPM_OF_DAY
  • DAY_OF_WEEK
  • ALIGNED_DAY_OF_WEEK_IN_MONTH
  • ALIGNED_DAY_OF_WEEK_IN_YEAR
  • DAY_OF_MONTH
  • DAY_OF_YEAR
  • EPOCH_DAY
  • ALIGNED_WEEK_OF_MONTH
  • ALIGNED_WEEK_OF_YEAR
  • MONTH_OF_YEAR
  • PROLEPTIC_MONTH
  • YEAR_OF_ERA
  • YEAR
  • ERA
  • INSTANT_SECONDS
  • OFFSET_SECONDS
Для всех остальных экземпляров ChronoField возвращается false.

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

Переопределено из:
isSupported в интерфейсе TemporalAccessor
Параметры:
field — поле для проверки; null возвращает false
Возвращает:
true, если это поле поддерживается для этих даты и времени; иначе false

isSupported

public boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица измерения.

Проверяет, можно ли прибавить указанную единицу к этим дате и времени или вычесть её из них. Если это не так, вызовы методов plus(long, TemporalUnit) и minus приведут к исключению.

Если единица измерения является ChronoUnit, запрос обрабатывается здесь. Поддерживаются следующие единицы измерения:

  • NANOS
  • MICROS
  • MILLIS
  • SECONDS
  • MINUTES
  • HOURS
  • HALF_DAYS
  • DAYS
  • WEEKS
  • MONTHS
  • YEARS
  • DECADES
  • CENTURIES
  • MILLENNIA
  • ERAS
Для всех остальных экземпляров ChronoUnit возвращается false.

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

Переопределено из:
isSupported в интерфейсе Temporal
Параметры:
unit — единица измерения для проверки; null возвращает false
Возвращает:
true, если единицу измерения можно прибавить или вычесть; иначе false

range

public ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.

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

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

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

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

get

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

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

Если поле является ChronoField, запрос обрабатывается здесь. Метод supported fields возвращает допустимые значения на основе этих даты и времени, за исключением NANO_OF_DAY, MICRO_OF_DAY, EPOCH_DAY, PROLEPTIC_MONTH и INSTANT_SECONDS: их значения слишком велики, чтобы поместиться в int, поэтому выбрасывается UnsupportedTemporalTypeException. Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.

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

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

getLong

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

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

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

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

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

getOffset

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

Это смещение локальных даты и времени относительно UTC/Гринвича.

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

withOffsetSameLocal

public OffsetDateTime withOffsetSameLocal(ZoneOffset offset)
Возвращает копию этого OffsetDateTime с указанным смещением, обеспечивая сохранение локальных даты и времени в результате.

Этот метод возвращает объект с теми же LocalDateTime и указанным ZoneOffset. Никаких вычислений не требуется и не выполняется. Например, если это значение соответствует 2007-12-03T10:30+02:00, а указанное смещение равно +03:00, метод вернёт 2007-12-03T10:30+03:00.

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

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

Параметры:
offset — смещение часового пояса, на которое нужно изменить текущее, не null
Возвращает:
экземпляр OffsetDateTime на основе этих даты и времени с запрошенным смещением, не null

withOffsetSameInstant

public OffsetDateTime withOffsetSameInstant(ZoneOffset offset)
Возвращает копию этого OffsetDateTime с указанным смещением, обеспечивая соответствие результата тому же моменту времени.

Этот метод возвращает объект с указанным ZoneOffset и LocalDateTime, скорректированным на разницу между двумя смещениями. В результате старый и новый объекты будут соответствовать одному и тому же моменту времени. Это полезно для определения местного времени при другом смещении. Например, если это значение соответствует 2007-12-03T10:30+02:00, а указанное смещение равно +03:00, метод вернёт 2007-12-03T11:30+03:00.

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

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

Параметры:
offset — смещение часового пояса, на которое нужно изменить текущее, не null
Возвращает:
экземпляр OffsetDateTime на основе этих даты и времени с запрошенным смещением, не null
Вызывает:
DateTimeException — если результат выходит за поддерживаемый диапазон дат

toLocalDateTime

public LocalDateTime toLocalDateTime()
Получает часть этих даты и времени, содержащую LocalDateTime.

Возвращает LocalDateTime с теми же годом, месяцем, днём и временем, что и у этих даты и времени.

Возвращает:
часть этих даты и времени с локальными датой и временем, не null

toLocalDate

public LocalDate toLocalDate()
Получает часть этих даты и времени, содержащую LocalDate.

Возвращает LocalDate с теми же годом, месяцем и днём, что и у этих даты и времени.

Возвращает:
часть этих даты и времени, содержащая дату, не null

getYear

public int getYear()
Получает значение поля года.

Этот метод возвращает значение года примитивного типа int.

Год, возвращаемый этим методом, является пролептическим согласно get(YEAR). Чтобы получить год эры, используйте get(YEAR_OF_ERA).

Возвращает:
год, от MIN_YEAR до MAX_YEAR

getMonthValue

public int getMonthValue()
Получает значение поля месяца года в диапазоне от 1 до 12.

Этот метод возвращает месяц как значение типа int в диапазоне от 1 до 12. В прикладном коде обычно понятнее использовать перечисление Month, вызвав getMonth().

Возвращает:
месяц года, от 1 до 12
См. также:
  • getMonth()

getMonth

public Month getMonth()
Получает значение поля месяца года с помощью перечисления Month.

Этот метод возвращает перечисление Month, соответствующее месяцу. Это позволяет избежать неоднозначности значений int. Если требуется получить значение примитивного типа int, перечисление предоставляет метод int value.

Возвращает:
месяц года, не null
См. также:
  • getMonthValue()

getDayOfMonth

public int getDayOfMonth()
Получает значение поля дня месяца.

Этот метод возвращает значение дня месяца примитивного типа int.

Возвращает:
день месяца, от 1 до 31

getDayOfYear

public int getDayOfYear()
Получает значение поля дня года.

Этот метод возвращает значение дня года примитивного типа int.

Возвращает:
день года, от 1 до 365 или 366 в високосный год

getDayOfWeek

public DayOfWeek getDayOfWeek()
Получает значение поля дня недели, представляющее собой перечисление DayOfWeek.

Этот метод возвращает перечисление DayOfWeek, соответствующее дню недели. Это позволяет избежать неоднозначности значений int. Если требуется получить значение примитивного типа int, перечисление предоставляет метод int value.

Дополнительную информацию можно получить из DayOfWeek. В том числе текстовые названия значений.

Возвращает:
день недели, не null

toLocalTime

public LocalTime toLocalTime()
Получает часть этих даты и времени, содержащую LocalTime.

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

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

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

Простой корректировщик может просто задать значение одного из полей, например поля года. Более сложный корректировщик может установить дату на последний день месяца. Набор распространённых корректировок предоставлен в TemporalAdjusters. К ним относятся поиск «последнего дня месяца» и «следующей среды». Основные классы даты и времени также реализуют интерфейс TemporalAdjuster, например Month и MonthDay. Корректировщик отвечает за обработку особых случаев, таких как различная продолжительность месяцев и високосные годы.

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

 import static java.time.Month.*;
 import static java.time.temporal.TemporalAdjusters.*;

 result = offsetDateTime.with(JULY).with(lastDayOfMonth());

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

 result = offsetDateTime.with(date);
 result = offsetDateTime.with(time);
 result = offsetDateTime.with(offset);

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

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

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

with

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

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

В некоторых случаях изменение указанного поля может привести к недопустимости результата даты и времени. Например, изменение месяца с 31 января на февраль сделает день месяца недопустимым. В таких случаях поле отвечает за разрешение даты. Как правило, выбирается предыдущая допустимая дата — в данном примере это будет последний допустимый день февраля.

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

Поле INSTANT_SECONDS возвращает дату и время с указанным моментом времени. Смещение и наносекунда не изменяются. Если новое значение момента времени выходит за допустимый диапазон, выбрасывается DateTimeException.

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

Остальные поля supported fields ведут себя так же, как соответствующий метод в LocalDateTime. В этом случае смещение не участвует в вычислении и остаётся неизменным.

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

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

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

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

withYear

public OffsetDateTime withYear(int year)
Возвращает копию этого OffsetDateTime с изменённым годом.

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

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

Параметры:
year — год, который следует установить в результате; от MIN_YEAR до MAX_YEAR
Возвращает:
OffsetDateTime на основе этой даты и времени с указанным годом; не null
Исключения:
DateTimeException — если значение года недопустимо

withMonth

public OffsetDateTime withMonth(int month)
Возвращает копию этого OffsetDateTime с изменённым месяцем года.

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

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

Параметры:
month — месяц года, который следует установить в результате; от 1 (январь) до 12 (декабрь)
Возвращает:
OffsetDateTime на основе этой даты и времени с указанным месяцем; не null
Исключения:
DateTimeException — если значение месяца года недопустимо

withDayOfMonth

public OffsetDateTime withDayOfMonth(int dayOfMonth)
Возвращает копию этого OffsetDateTime с изменённым днём месяца.

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

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

Параметры:
dayOfMonth — день месяца, который следует установить в результате; от 1 до 28–31
Возвращает:
OffsetDateTime на основе этой даты и времени с указанным днём; не null
Исключения:
DateTimeException — если значение дня месяца недопустимо или если день месяца недопустим для месяца и года

withDayOfYear

public OffsetDateTime withDayOfYear(int dayOfYear)
Возвращает копию этого OffsetDateTime с изменённым днём года.

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

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

Параметры:
dayOfYear — день года, который следует установить в результате; от 1 до 365–366
Возвращает:
OffsetDateTime на основе этой даты с указанным днём; не null
Исключения:
DateTimeException — если значение дня года недопустимо или если день года недопустим для этого года

withHour

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

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

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

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

withMinute

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

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

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

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

withSecond

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

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

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

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

withNano

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

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

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

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

truncatedTo

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

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

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

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

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

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

plus

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

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

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

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

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

plus

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

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

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

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

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

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

plusYears

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

Этот метод прибавляет указанную величину к полю года в три этапа:

  1. Прибавить входное количество лет к полю года
  2. Проверить, не станет ли получившаяся дата недопустимой
  3. При необходимости скорректировать день месяца до последнего допустимого дня

Например, прибавление одного года к дате 2008-02-29 (високосный год) дало бы недопустимую дату 2009-02-29 (обычный год). Вместо возврата недопустимого результата выбирается последний допустимый день месяца — 2009-02-28.

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

Параметры:
years — количество лет для прибавления; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с прибавленным количеством лет; не null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusMonths

public OffsetDateTime plusMonths(long months)
Возвращает копию этого OffsetDateTime с прибавленным указанным количеством месяцев.

Этот метод прибавляет указанную величину к полю месяцев в три этапа:

  1. Прибавить входное количество месяцев к полю месяца года
  2. Проверить, не станет ли получившаяся дата недопустимой
  3. При необходимости скорректировать день месяца до последнего допустимого дня

Например, прибавление одного месяца к дате 2007-03-31 дало бы недопустимую дату 2007-04-31. Вместо возврата недопустимого результата выбирается последний допустимый день месяца — 2007-04-30.

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

Параметры:
months — количество месяцев для прибавления; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с прибавленным количеством месяцев; не null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusWeeks

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

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

Например, прибавление одной недели к дате 2008-12-31 даст 2009-01-07.

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

Параметры:
weeks — количество недель для прибавления; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с прибавленным количеством недель; не null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusDays

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

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

Например, прибавление одного дня к дате 2008-12-31 даст 2009-01-01.

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

Параметры:
days — количество дней для прибавления; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с прибавленным количеством дней; не null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusHours

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

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

Параметры:
hours — количество часов для прибавления; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с прибавленным количеством часов; не null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusMinutes

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

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

Параметры:
minutes — количество минут для прибавления; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с прибавленным количеством минут; не null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusSeconds

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

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

Параметры:
seconds — количество секунд для прибавления; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с прибавленным количеством секунд; не null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

plusNanos

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

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

Параметры:
nanos — количество наносекунд для прибавления; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с прибавленным количеством наносекунд; не null
Исключения:
DateTimeException — если эту единицу невозможно прибавить к данному типу

minus

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

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

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

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

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

minus

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

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

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

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

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

minusYears

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

Этот метод вычитает указанную величину из поля года в три этапа:

  1. Вычесть входное количество лет из поля года
  2. Проверить, не станет ли получившаяся дата недопустимой
  3. При необходимости скорректировать день месяца до последнего допустимого дня

Например, вычитание одного года из даты 2008-02-29 (високосный год) дало бы недопустимую дату 2007-02-29 (обычный год). Вместо возврата недопустимого результата выбирается последний допустимый день месяца — 2007-02-28.

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

Параметры:
years — количество лет для вычитания; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с вычтенным количеством лет; не null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minusMonths

public OffsetDateTime minusMonths(long months)
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством месяцев.

Этот метод вычитает указанную величину из поля месяцев в три этапа:

  1. Вычесть входное количество месяцев из поля месяца года
  2. Проверить, не станет ли получившаяся дата недопустимой
  3. При необходимости скорректировать день месяца до последнего допустимого дня

Например, вычитание одного месяца из даты 2007-03-31 дало бы недопустимую дату 2007-02-31. Вместо возврата недопустимого результата выбирается последний допустимый день месяца — 2007-02-28.

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

Параметры:
months — количество месяцев для вычитания; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с вычтенным количеством месяцев; не null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minusWeeks

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

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

Например, вычитание одной недели из даты 2009-01-07 даст 2008-12-31.

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

Параметры:
weeks — количество недель для вычитания; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с вычтенным количеством недель; не null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minusDays

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

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

Например, вычитание одного дня из даты 2009-01-01 даст 2008-12-31.

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

Параметры:
days — количество дней для вычитания; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с вычтенным количеством дней; не null
Исключения:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона дат

minusHours

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

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

Параметры:
hours - количество часов для вычитания; может быть отрицательным
Возвращает:
OffsetDateTime на основе этой даты и времени с вычтенными часами; не null
Исключения:
DateTimeException - если результат выходит за пределы поддерживаемого диапазона дат

minusMinutes

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

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

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

minusSeconds

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

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

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

minusNanos

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

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

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

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.EPOCH_DAY, ChronoField.NANO_OF_DAY и ChronoField.OFFSET_SECONDS.

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

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

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

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

until

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

Этот метод вычисляет время между двумя объектами OffsetDateTime в единицах одной TemporalUnit. Начальной и конечной точками являются this и указанная дата и время. Результат будет отрицательным, если конечная точка предшествует начальной. Например, время в днях между двумя датами и временем можно вычислить с помощью startDateTime.until(endDateTime, DAYS).

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

Вычисление возвращает целое число, представляющее количество полных единиц между двумя датами и временем. Например, интервал в месяцах между 2012-06-15T00:00Z и 2012-08-14T23:59Z составит только один месяц, поскольку до двух месяцев не хватает одной минуты.

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

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

Вычисление в этом методе реализовано для ChronoUnit. Поддерживаются единицы NANOS, MICROS, MILLIS, SECONDS, MINUTES, HOURS и HALF_DAYS, DAYS, WEEKS, MONTHS, YEARS, DECADES, CENTURIES, MILLENNIA и ERAS. Для других значений ChronoUnit будет выброшено исключение.

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

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

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

format

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

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

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

atZoneSameInstant

public ZonedDateTime atZoneSameInstant(ZoneId zone)
Объединяет эту дату и время с часовым поясом, создавая ZonedDateTime, и гарантирует, что результат будет обозначать тот же момент времени.

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

Чтобы попытаться сохранить значения полей, используйте atZoneSimilarLocal(ZoneId). Чтобы использовать смещение в качестве идентификатора часового пояса, используйте toZonedDateTime().

Параметры:
zone - используемый часовой пояс; не null
Возвращает:
дату и время с часовым поясом, сформированные на основе этой даты и времени; не null

atZoneSimilarLocal

public ZonedDateTime atZoneSimilarLocal(ZoneId zone)
Объединяет эту дату и время с часовым поясом, создавая ZonedDateTime и пытаясь сохранить те же местные дату и время.

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

Из-за правил часового пояса, например перехода на летнее время, некоторые значения времени на местной временной шкале не существуют. Если согласно правилам местные дата и время попадают в пропуск или перекрытие, для определения результирующего местного времени и смещения используется механизм разрешения неоднозначности. Этот метод использует ZonedDateTime.ofLocal(LocalDateTime, ZoneId, ZoneOffset), чтобы при возможности сохранить смещение этого экземпляра.

Для более точной обработки пропусков и перекрытий есть два способа. Если при перекрытии нужно просто использовать более позднее смещение, вызовите ZonedDateTime.withLaterOffsetAtOverlap() сразу после этого метода.

Чтобы создать дату и время с часовым поясом, обозначающие тот же момент времени независимо от местной временной шкалы, используйте atZoneSameInstant(ZoneId). Чтобы использовать смещение в качестве идентификатора часового пояса, используйте toZonedDateTime().

Параметры:
zone - используемый часовой пояс; не null
Возвращает:
дату и время с часовым поясом, сформированные на основе этой даты и наиболее раннего допустимого времени для часового пояса; не null

toOffsetTime

public OffsetTime toOffsetTime()
Преобразует эту дату и время в OffsetTime.

Возвращает время со смещением, содержащие те же местное время и смещение.

Возвращает:
OffsetTime, представляющее время и смещение; не null

toZonedDateTime

public ZonedDateTime toZonedDateTime()
Преобразует эту дату и время в ZonedDateTime, используя смещение в качестве идентификатора часового пояса.

Создает простейший вариант ZonedDateTime, используя смещение в качестве идентификатора часового пояса.

Чтобы задать используемый часовой пояс, см. atZoneSameInstant(ZoneId) и atZoneSimilarLocal(ZoneId).

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

toInstant

public Instant toInstant()
Преобразует эту дату и время в Instant.

Возвращает Instant, обозначающий ту же точку на временной шкале, что и эта дата и время.

Возвращает:
Instant, обозначающий тот же момент времени; не null

toEpochSecond

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

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

Возвращает:
количество секунд, прошедших с эпохи 1970-01-01T00:00:00Z

compareTo

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

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

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

  1. 2008-12-03T10:30+01:00
  2. 2008-12-03T11:00+01:00
  3. 2008-12-03T12:00+02:00
  4. 2008-12-03T11:30+01:00
  5. 2008-12-03T12:00+01:00
  6. 2008-12-03T12:30+01:00
Значения № 2 и № 3 обозначают один и тот же момент на временной шкале. Если два значения обозначают один и тот же момент времени, для их различения сравниваются местные дата и время. Этот шаг необходим, чтобы порядок сравнения был согласован с equals().
Определено в:
compareTo в интерфейсе Comparable<OffsetDateTime>
Параметры:
other - другая дата и время для сравнения; не null
Возвращает:
значение сравнения: сравнение с моментом времени у other, если они не равны; если моменты времени у other равны — сравнение местных даты и времени у other
См. также:
  • isBefore(OffsetDateTime)
  • isAfter(OffsetDateTime)

isAfter

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

Этот метод отличается от сравнения в compareTo(OffsetDateTime) и equals(Object) тем, что сравнивает только моменты времени. Это эквивалентно использованию dateTime1.toInstant().isAfter(dateTime2.toInstant());.

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

isBefore

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

Этот метод отличается от сравнения в compareTo(OffsetDateTime) тем, что сравнивает только моменты времени. Это эквивалентно использованию dateTime1.toInstant().isBefore(dateTime2.toInstant());.

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

isEqual

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

Этот метод отличается от сравнения в compareTo(OffsetDateTime) и equals(Object) тем, что сравнивает только моменты времени. Это эквивалентно использованию dateTime1.toInstant().equals(dateTime2.toInstant());.

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

equals

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

Сравнение выполняется по местным дате и времени и смещению. Чтобы сравнить даты и время на предмет совпадения момента на временной шкале, используйте isEqual(OffsetDateTime). Сравниваются только объекты типа OffsetDateTime; для объектов других типов возвращается false.

Переопределяет:
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, например 2007-12-03T10:15:30+01:00.

Вывод будет иметь один из следующих форматов:

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания, предназначенные для разработчиков, обзоры концепций, определения терминов, способы обхода проблем и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/OffsetDateTime.html

Spec-Zone.ru

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