Класс OffsetDateTime
- Все реализованные интерфейсы:
Serializable, Comparable<OffsetDateTime>, Temporal, TemporalAccessor, TemporalAdjuster
public final class OffsetDateTime extends Object implements Temporal, TemporalAdjuster, Comparable<OffsetDateTime>, Serializable
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 |
Изменяет указанный объект временных данных так, чтобы его смещение, дата и время совпадали с этим объектом. |
ZonedDateTime |
atZoneSameInstant |
Объединяет эти дату и время с часовым поясом, создавая ZonedDateTime и обеспечивая сохранение того же момента времени в результате. |
ZonedDateTime |
atZoneSimilarLocal |
Объединяет эти дату и время с часовым поясом, создавая ZonedDateTime, стараясь сохранить ту же местную дату и время. |
int |
compareTo |
Сравнивает эти дату и время с другими датой и временем. |
boolean |
equals |
Проверяет, равны ли эти дата и время другим дате и времени. |
String |
format |
Форматирует эти дату и время с помощью указанного средства форматирования. |
static OffsetDateTime |
from |
Получает экземпляр OffsetDateTime из объекта временных данных. |
int |
get |
Возвращает значение указанного поля этих даты и времени в виде int. |
int |
getDayOfMonth() |
Возвращает поле дня месяца. |
DayOfWeek |
getDayOfWeek() |
Возвращает поле дня недели, представленное перечислением DayOfWeek. |
int |
getDayOfYear() |
Возвращает поле дня года. |
int |
getHour() |
Возвращает поле часа суток. |
long |
getLong |
Возвращает значение указанного поля этих даты и времени в виде long. |
int |
getMinute() |
Возвращает поле минуты часа. |
Month |
getMonth() |
Возвращает поле месяца года с помощью перечисления Month. |
int |
getMonthValue() |
Возвращает поле месяца года в диапазоне от 1 до 12. |
int |
getNano() |
Возвращает поле наносекунды секунды. |
ZoneOffset |
getOffset() |
Возвращает смещение часового пояса, например «+01:00». |
int |
getSecond() |
Возвращает поле секунды минуты. |
int |
getYear() |
Возвращает поле года. |
int |
hashCode() |
Хэш-код этих даты и времени. |
boolean |
isAfter |
Проверяет, наступает ли момент времени этих даты и времени позже момента времени указанных даты и времени. |
boolean |
isBefore |
Проверяет, наступает ли момент времени этих даты и времени раньше момента времени указанных даты и времени. |
boolean |
isEqual |
Проверяет, совпадает ли момент времени этих даты и времени с моментом времени указанных даты и времени. |
boolean |
isSupported |
Проверяет, поддерживается ли указанное поле. |
boolean |
isSupported |
Проверяет, поддерживается ли указанная единица измерения. |
OffsetDateTime |
minus |
Возвращает копию этих даты и времени с вычтенным указанным значением. |
OffsetDateTime |
minus |
Возвращает копию этих даты и времени с вычтенным указанным значением. |
OffsetDateTime |
minusDays |
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством дней. |
OffsetDateTime |
minusHours |
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством часов. |
OffsetDateTime |
minusMinutes |
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством минут. |
OffsetDateTime |
minusMonths |
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством месяцев. |
OffsetDateTime |
minusNanos |
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством наносекунд. |
OffsetDateTime |
minusSeconds |
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством секунд. |
OffsetDateTime |
minusWeeks |
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством недель. |
OffsetDateTime |
minusYears |
Возвращает копию этого OffsetDateTime с вычтенным указанным количеством лет. |
static OffsetDateTime |
now() |
Получает текущие дату и время по системным часам в часовом поясе по умолчанию. |
static OffsetDateTime |
now |
Получает текущие дату и время по указанным часам. |
static OffsetDateTime |
now |
Получает текущие дату и время по системным часам в указанном часовом поясе. |
static OffsetDateTime |
of |
Получает экземпляр OffsetDateTime из года, месяца, дня, часа, минуты, секунды, наносекунды и смещения. |
static OffsetDateTime |
of |
Получает экземпляр OffsetDateTime из даты, времени и смещения. |
static OffsetDateTime |
of |
Получает экземпляр OffsetDateTime из даты и времени, а также смещения. |
static OffsetDateTime |
ofInstant |
Получает экземпляр OffsetDateTime из Instant и идентификатора часового пояса. |
static OffsetDateTime |
parse |
Получает экземпляр OffsetDateTime из текстовой строки, например 2007-12-03T10:15:30+01:00. |
static OffsetDateTime |
parse |
Получает экземпляр OffsetDateTime из текстовой строки с помощью указанного средства форматирования. |
OffsetDateTime |
plus |
Возвращает копию этих даты и времени с добавленным указанным значением. |
OffsetDateTime |
plus |
Возвращает копию этих даты и времени с добавленным указанным значением. |
OffsetDateTime |
plusDays |
Возвращает копию этого OffsetDateTime с добавленным указанным количеством дней. |
OffsetDateTime |
plusHours |
Возвращает копию этого OffsetDateTime с добавленным указанным количеством часов. |
OffsetDateTime |
plusMinutes |
Возвращает копию этого OffsetDateTime с добавленным указанным количеством минут. |
OffsetDateTime |
plusMonths |
Возвращает копию этого OffsetDateTime с добавленным указанным количеством месяцев. |
OffsetDateTime |
plusNanos |
Возвращает копию этого OffsetDateTime с добавленным указанным количеством наносекунд. |
OffsetDateTime |
plusSeconds |
Возвращает копию этого OffsetDateTime с добавленным указанным количеством секунд. |
OffsetDateTime |
plusWeeks |
Возвращает копию этого OffsetDateTime с добавленным указанным количеством недель. |
OffsetDateTime |
plusYears |
Возвращает копию этого OffsetDateTime с добавленным указанным количеством лет. |
<R> R |
query |
Выполняет запрос к этим дате и времени с помощью указанного запроса. |
ValueRange |
range |
Возвращает диапазон допустимых значений указанного поля. |
static Comparator |
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 |
Возвращает копию этого OffsetDateTime с усечённым временем. |
long |
until |
Вычисляет время до других даты и времени в единицах указанной величины. |
OffsetDateTime |
with |
Возвращает скорректированную копию этих даты и времени. |
OffsetDateTime |
with |
Возвращает копию этих даты и времени с указанным полем, установленным в новое значение. |
OffsetDateTime |
withDayOfMonth |
Возвращает копию этого OffsetDateTime с изменённым днём месяца. |
OffsetDateTime |
withDayOfYear |
Возвращает копию этого OffsetDateTime с изменённым днём года. |
OffsetDateTime |
withHour |
Возвращает копию этого OffsetDateTime с изменённым часом суток. |
OffsetDateTime |
withMinute |
Возвращает копию этого OffsetDateTime с изменённой минутой часа. |
OffsetDateTime |
withMonth |
Возвращает копию этого OffsetDateTime с изменённым месяцем года. |
OffsetDateTime |
withNano |
Возвращает копию этого OffsetDateTime с изменённой наносекундой секунды. |
OffsetDateTime |
withOffsetSameInstant |
Возвращает копию этого OffsetDateTime с указанным смещением, обеспечивая сохранение того же момента времени в результате. |
OffsetDateTime |
withOffsetSameLocal |
Возвращает копию этого OffsetDateTime с указанным смещением, обеспечивая сохранение той же местной даты и времени в результате. |
OffsetDateTime |
withSecond |
Возвращает копию этого OffsetDateTime с изменённой секундой минуты. |
OffsetDateTime |
withYear |
Возвращает копию этого OffsetDateTime с изменённым годом. |
Подробное описание полей
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) тем, что сравнивает только базовый момент времени.
- Возвращает:
- компаратор, выполняющий сравнение в порядке временной шкалы
- См. также:
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()
Это смещение локальных даты и времени относительно 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()
Этот метод возвращает месяц как значение типа int в диапазоне от 1 до 12. В прикладном коде обычно понятнее использовать перечисление Month, вызвав getMonth().
- Возвращает:
- месяц года, от 1 до 12
- См. также:
getMonth
public Month getMonth()
Month. Этот метод возвращает перечисление Month, соответствующее месяцу. Это позволяет избежать неоднозначности значений int. Если требуется получить значение примитивного типа int, перечисление предоставляет метод int value.
- Возвращает:
- месяц года, не null
- См. также:
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 с прибавленным указанным количеством лет. Этот метод прибавляет указанную величину к полю года в три этапа:
- Прибавить входное количество лет к полю года
- Проверить, не станет ли получившаяся дата недопустимой
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, прибавление одного года к дате 2008-02-29 (високосный год) дало бы недопустимую дату 2009-02-29 (обычный год). Вместо возврата недопустимого результата выбирается последний допустимый день месяца — 2009-02-28.
Этот экземпляр неизменяем и не изменяется при вызове данного метода.
- Параметры:
-
years— количество лет для прибавления; может быть отрицательным - Возвращает:
OffsetDateTimeна основе этой даты и времени с прибавленным количеством лет; не null- Исключения:
-
DateTimeException— если результат выходит за пределы поддерживаемого диапазона дат
plusMonths
public OffsetDateTime plusMonths(long months)
OffsetDateTime с прибавленным указанным количеством месяцев. Этот метод прибавляет указанную величину к полю месяцев в три этапа:
- Прибавить входное количество месяцев к полю месяца года
- Проверить, не станет ли получившаяся дата недопустимой
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, прибавление одного месяца к дате 2007-03-31 дало бы недопустимую дату 2007-04-31. Вместо возврата недопустимого результата выбирается последний допустимый день месяца — 2007-04-30.
Этот экземпляр неизменяем и не изменяется при вызове данного метода.
- Параметры:
-
months— количество месяцев для прибавления; может быть отрицательным - Возвращает:
OffsetDateTimeна основе этой даты и времени с прибавленным количеством месяцев; не null- Исключения:
-
DateTimeException— если результат выходит за пределы поддерживаемого диапазона дат
plusWeeks
public OffsetDateTime plusWeeks(long weeks)
Этот метод прибавляет указанное количество недель к полю дней, увеличивая при необходимости поля месяца и года, чтобы результат оставался допустимым. Результат становится недопустимым только при выходе за пределы максимального или минимального года.
Например, прибавление одной недели к дате 2008-12-31 даст 2009-01-07.
Этот экземпляр неизменяем и не изменяется при вызове данного метода.
- Параметры:
-
weeks— количество недель для прибавления; может быть отрицательным - Возвращает:
OffsetDateTimeна основе этой даты и времени с прибавленным количеством недель; не null- Исключения:
-
DateTimeException— если результат выходит за пределы поддерживаемого диапазона дат
plusDays
public OffsetDateTime plusDays(long days)
Этот метод прибавляет указанную величину к полю дней, увеличивая при необходимости поля месяца и года, чтобы результат оставался допустимым. Результат становится недопустимым только при выходе за пределы максимального или минимального года.
Например, прибавление одного дня к дате 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 с вычтенным указанным количеством лет. Этот метод вычитает указанную величину из поля года в три этапа:
- Вычесть входное количество лет из поля года
- Проверить, не станет ли получившаяся дата недопустимой
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, вычитание одного года из даты 2008-02-29 (високосный год) дало бы недопустимую дату 2007-02-29 (обычный год). Вместо возврата недопустимого результата выбирается последний допустимый день месяца — 2007-02-28.
Этот экземпляр неизменяем и не изменяется при вызове данного метода.
- Параметры:
-
years— количество лет для вычитания; может быть отрицательным - Возвращает:
OffsetDateTimeна основе этой даты и времени с вычтенным количеством лет; не null- Исключения:
-
DateTimeException— если результат выходит за пределы поддерживаемого диапазона дат
minusMonths
public OffsetDateTime minusMonths(long months)
OffsetDateTime с вычтенным указанным количеством месяцев. Этот метод вычитает указанную величину из поля месяцев в три этапа:
- Вычесть входное количество месяцев из поля месяца года
- Проверить, не станет ли получившаяся дата недопустимой
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, вычитание одного месяца из даты 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()
Это позволяет преобразовать эту дату и время в значение поля epoch-seconds. Этот метод предназначен главным образом для низкоуровневых преобразований, а не для общего использования в приложениях.
- Возвращает:
- количество секунд, прошедших с эпохи 1970-01-01T00:00:00Z
compareTo
public int compareTo(OffsetDateTime other)
Сравнение выполняется сначала по моменту времени, а затем по местным дате и времени. Оно «согласовано с equals» в соответствии с определением Comparable.
Например, порядок сравнения будет следующим:
2008-12-03T10:30+01:002008-12-03T11:00+01:002008-12-03T12:00+02:002008-12-03T11:30+01:002008-12-03T12:00+01:002008-12-03T12:30+01:00
equals().- Определено в:
-
compareToв интерфейсеComparable<OffsetDateTime> - Параметры:
-
other- другая дата и время для сравнения; не null - Возвращает:
- значение сравнения: сравнение с моментом времени у
other, если они не равны; если моменты времени уotherравны — сравнение местных даты и времени уother - См. также:
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.
hashCode
toString
public String toString()
String, например 2007-12-03T10:15:30+01:00. Вывод будет иметь один из следующих форматов:
uuuu-MM-dd'T'HH:mmXXXXXuuuu-MM-dd'T'HH:mm:ssXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSSSSXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSSSSSSSXXXXX
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/OffsetDateTime.html