Spec-Zone.ru › OpenJDK 17

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

Методы, объявленные в классе java.lang.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(java.time.OffsetDateTime) тем, что сравнивает только базовое мгновение времени.

Возвращает:
компаратор, сравнивающий по порядку на временной шкале
См. также:
  • isAfter(java.time.OffsetDateTime)
  • isBefore(java.time.OffsetDateTime)
  • isEqual(java.time.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 из даты, времени и смещения.

Это создаёт объект OffsetDateTime с указанной локальной датой, временем и смещением.

Параметры:
date - локальная дата, не null
time - локальное время, не null
offset - смещение часовой зоны, не null
Возвращает:
объект OffsetDateTime, не null

of

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

Это создаёт объект OffsetDateTime с указанной локальной датой и временем, и смещением.

Параметры:
dateTime - локальная дата и время, не null
offset - смещение часовой зоны, не null
Возвращает:
объект OffsetDateTime, не null

of

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

Это создаёт объект OffsetDateTime с указанными семью полями.

Этот метод существует в основном для написания тестовых случаев. Код, не предназначенный для тестирования, обычно использует другие методы для создания объекта 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
Возвращает:
объект OffsetDateTime, не null
Исключения:
DateTimeException - если значение любого поля находится вне допустимого диапазона или если день месяца недопустим для данного месяца и года

ofInstant

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

Это создаёт объект OffsetDateTime с тем же мгновением времени, что и указанное. Нахождение смещения от UTC/Гринвича просто, так как для каждого мгновения времени существует только одно допустимое смещение.

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

from

public static OffsetDateTime from(TemporalAccessor temporal)
Получает экземпляр OffsetDateTime из временного объекта.

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

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

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

Параметры:
temporal - временной объект для преобразования, не null
Возвращает:
объект OffsetDateTime, не 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
Возвращает:
проанализированный объект OffsetDateTime, не null
Исключения:
DateTimeParseException - если текст не может быть проанализирован

parse

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

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

Параметры:
text - текст для анализа, не null
formatter - используемый форматер, не null
Возвращает:
проанализированный объект OffsetDateTime, не 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
  • 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 в качестве аргумента. Поддерживается ли поле, определяется полем.

Specified by:
isSupported в интерфейсе TemporalAccessor
Parameters:
field - поле для проверки, null возвращает false
Returns:
true, если поле поддерживается в этой дате и времени, false — если нет

isSupported

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

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

Specified by:
isSupported в интерфейсе Temporal
Parameters:
unit - единица измерения для проверки, null возвращает false
Returns:
true, если единицу измерения можно добавить/вычесть, false — если нет

range

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

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

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

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

Specified by:
range в интерфейсе TemporalAccessor
Parameters:
field - поле для запроса диапазона, не null
Returns:
диапазон допустимых значений для поля, не null
Throws:
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 в качестве аргумента. Возможно ли получить значение и что оно представляет, определяется полем.

Specified by:
get в интерфейсе TemporalAccessor
Parameters:
field - поле для получения, не null
Returns:
значение поля
Throws:
DateTimeException - если значение для поля получить не удалось или значение выходит за пределы допустимого диапазона значений для поля
UnsupportedTemporalTypeException - если поле не поддерживается или диапазон значений превышает int
ArithmeticException - если произошел переполнение числовых типов

getLong

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

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

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

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

Specified by:
getLong в интерфейсе TemporalAccessor
Parameters:
field - поле для получения, не null
Returns:
значение поля
Throws:
DateTimeException - если значение для поля получить не удалось
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если произошел переполнение числовых типов

getOffset

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

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

Returns:
смещение часового пояса, не 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(java.time.ZoneOffset).

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

Parameters:
offset - смещение часового пояса для изменения, не null
Returns:
объект OffsetDateTime на основе этой даты и времени с запрошенным смещением, не null

с смещениемSameInstant

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

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

Для изменения смещения без корректировки местного времени используйте withOffsetSameLocal(java.time.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)
Возвращает копию этой даты-времени с указанным полем, установленным в новое значение.

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

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

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

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

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

Другие supported fields будут вести себя в соответствии с соответствующим методом в LocalDateTime. В этом случае смещение не участвует в расчётах и останется неизменным.

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

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

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

Specified by:
with в интерфейсе Temporal
Parameters:
field - поле для установки в результате, не null
newValue - новое значение поля в результате
Returns:
копию OffsetDateTime на основе this с указанным полем, не null
Throws:
DateTimeException - если поле нельзя установить
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение числового значения

withYear

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

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

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

Parameters:
year - год для установки в результате, от MIN_YEAR до MAX_YEAR
Returns:
копию OffsetDateTime на основе этой даты-времени с запрошенным годом, не null
Throws:
DateTimeException - если значение года недействительно

withMonth

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

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

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

Parameters:
month - месяц года для установки в результате, от 1 (январь) до 12 (декабрь)
Returns:
копию OffsetDateTime на основе этой даты-времени с запрошенным месяцем, не null
Throws:
DateTimeException - если значение месяца года недействительно

withDayOfMonth

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

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

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

Parameters:
dayOfMonth - день месяца для установки в результате, от 1 до 28-31
Returns:
копию OffsetDateTime на основе этой даты-времени с запрошенным днём, не null
Throws:
DateTimeException - если значение дня месяца недействительно или если день месяца недействителен для месяца-года

withDayOfYear

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

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

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

Parameters:
dayOfYear - день года для установки в результате, от 1 до 365-366
Returns:
копию OffsetDateTime на основе этой даты с запрошенным днём, не null
Throws:
DateTimeException - если значение дня года недействительно или если день года недействителен для года

withHour

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

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

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

Parameters:
hour - час дня для установки в результате, от 0 до 23
Returns:
копию OffsetDateTime на основе этой даты-времени с запрошенным часом, не null
Throws:
DateTimeException - если значение часа недействительно

withMinute

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

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

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

Parameters:
minute - минута часа для установки в результате, от 0 до 59
Returns:
копию OffsetDateTime на основе этой даты-времени с запрошенной минутой, не null
Throws:
DateTimeException - если значение минуты недействительно

withSecond

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

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

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

Parameters:
second - секунда минуты для установки в результате, от 0 до 59
Returns:
копию OffsetDateTime на основе этой даты-времени с запрошенной секундой, не null
Throws:
DateTimeException - если значение секунды недействительно

withNano

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

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

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

Parameters:
nanoOfSecond - наносекунды для установки в результате, от 0 до 999 999 999
Returns:
копию OffsetDateTime на основе этой даты-времени с запрошенными наносекундами, не null
Throws:
DateTimeException - если значение наносекунд недействительно

truncatedTo

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

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

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

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

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

Parameters:
unit - единица измерения для обрезки, не null
Returns:
копию OffsetDateTime на основе этой даты-времени с обрезанным временем, не null
Throws:
DateTimeException - если обрезка невозможна
UnsupportedTemporalTypeException - если единица измерения не поддерживается

plus

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

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

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

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

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

plus

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

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

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

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

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

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

plusYears

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

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

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

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

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

Parameters:
years - годы для добавления, могут быть отрицательными
Returns:
дата-время, основанная на этой дате-времени с добавлением лет, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

plusMonths

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

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

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

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

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

Parameters:
months - месяцы для добавления, могут быть отрицательными
Returns:
дата-время, основанная на этой дате-времени с добавлением месяцев, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

plusWeeks

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

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

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

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

Parameters:
weeks - недели для добавления, могут быть отрицательными
Returns:
OffsetDateTime, основанный на этой дате-времени с добавлением недель, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

plusDays

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

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

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

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

Parameters:
days - дни для добавления, могут быть отрицательными
Returns:
OffsetDateTime, основанный на этой дате-времени с добавлением дней, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

plusHours

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

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

Parameters:
hours - часы для добавления, могут быть отрицательными
Returns:
OffsetDateTime, основанный на этой дате-времени с добавлением часов, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

plusMinutes

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

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

Parameters:
minutes - минуты для добавления, могут быть отрицательными
Returns:
OffsetDateTime, основанный на этой дате-времени с добавлением минут, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

plusSeconds

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

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

Parameters:
seconds - секунды для добавления, могут быть отрицательными
Returns:
OffsetDateTime, основанный на этой дате-времени с добавлением секунд, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

plusNanos

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

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

Parameters:
nanos - наносекунды для добавления, могут быть отрицательными
Returns:
OffsetDateTime, основанный на этой дате-времени с добавлением наносекунд, не null
Throws:
DateTimeException - если единицу нельзя добавить к этому типу

minus

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

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

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

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

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

minus

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

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

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

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

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

minusYears

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

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

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

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

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

Параметры:
years - количество лет для вычитания, может быть отрицательным
Возвращает:
an OffsetDateTime на основе этого объекта date-time с вычтенными годами, не null
Исключения:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minusMonths

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

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

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

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

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

Параметры:
months - количество месяцев для вычитания, может быть отрицательным
Возвращает:
an OffsetDateTime на основе этого объекта date-time с вычтенными месяцами, не null
Исключения:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minusWeeks

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

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

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

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

Параметры:
weeks - количество недель для вычитания, может быть отрицательным
Возвращает:
an OffsetDateTime на основе этого объекта date-time с вычтенными неделями, не null
Исключения:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minusDays

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

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

Например, 2009-01-01 минус один день приведет к 2008-12-31.

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

Параметры:
days - количество дней для вычитания, может быть отрицательным
Возвращает:
an OffsetDateTime на основе этого объекта date-time с вычтенными днями, не null
Исключения:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minusHours

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

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

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

minusMinutes

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

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

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

minusSeconds

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

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

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

minusNanos

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

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

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

query

public <R> R query(TemporalQuery<R> query)
Запрашивает этот объект date-time с использованием указанного запроса.

Это запрашивает этот объект date-time с использованием указанного объекта стратегии запроса. Объект 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 в качестве первого аргумента и преобразованный входной временной объект в качестве второго аргумента.

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

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

format

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

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

Parameters:
formatter - используемый форматер, не null
Returns:
строка отформатированной даты и времени, не null
Throws:
DateTimeException - если произошла ошибка при печати

atZoneSameInstant

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

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

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

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

atZoneSimilarLocal

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

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

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

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

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

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

toOffsetTime

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

Возвращает смещенное время с тем же локальным временем и смещением.

Returns:
OffsetTime, представляющий время и смещение, не null

toZonedDateTime

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

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

Для управления используемым часовым поясом см. atZoneSameInstant(ZoneId) и atZoneSimilarLocal(ZoneId).

Returns:
зональная дата и время, представляющие ту же локальную дату и время и смещение, не null

toInstant

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

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

Returns:
Instant представляющий тот же момент, не null

toEpochSecond

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

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

Returns:
количество секунд с эпохи 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().
Specified by:
compareTo в интерфейсе Comparable<OffsetDateTime>
Parameters:
other - другая дата и время для сравнения, не null
Returns:
значение сравнения, отрицательное, если меньше, положительное, если больше

isAfter

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

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

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

isBefore

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

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

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

isEqual

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

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

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

equals

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

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

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

hashCode

public int hashCode()
Хеш-код для этого объекта даты и времени.
Overrides:
hashCode в классе Object
Returns:
подходящий хеш-код
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

public String toString()
Выводит этот объект даты и времени в формате String, например 2007-12-03T10:15:30+01:00.

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

  • 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
Используемый формат будет самым коротким, который выведет полное значение времени, где опущенные части подразумеваются равными нулю.
Overrides:
toString в классе Object
Returns:
строковое представление этого объекта даты и времени, не null

© 1993, 2021, 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/17/docs/api/java.base/java/time/OffsetDateTime.html

Spec-Zone.ru

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