Класс 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(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 из даты, времени и смещения. Это создаёт дату и время со смещением с указанной локальной датой, временем и смещением.
- Параметры:
-
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)
Проверяет, можно ли получить значение указанного поля из этой даты и времени. Если 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()
Это смещение локального времени от 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
сдвигОдинаковыйМгновенный
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()
Этот метод возвращает месяц как 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- если происходит переполнение чисел
с
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- если произошел переполнение числовых значений
сГодом
public OffsetDateTime withYear(int year)
OffsetDateTime с изменённым годом. Время и смещение не влияют на вычисления и останутся такими же в результате. Если день месяца недействителен для года, он будет изменён на последний допустимый день месяца.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
year- год, устанавливаемый в результате, от MIN_YEAR до MAX_YEAR - Возвращает:
OffsetDateTime, основанный на этой дате и времени с запрошенным годом, не null- Исключение:
-
DateTimeException- если значение года недопустимо
сМесяцем
public OffsetDateTime withMonth(int month)
OffsetDateTime с изменённым месяцем. Время и смещение не влияют на вычисления и останутся такими же в результате. Если день месяца недействителен для года, он будет изменён на последний допустимый день месяца.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
month- месяц для установки в результате, от 1 (январь) до 12 (декабрь) - Возвращает:
OffsetDateTime, основанный на этой дате и времени с запрошенным месяцем, не null- Исключение:
-
DateTimeException- если значение месяца недопустимо
сДнёмМесяца
public OffsetDateTime withDayOfMonth(int dayOfMonth)
OffsetDateTime с изменённым днём месяца. Если результирующая OffsetDateTime недействительна, выбрасывается исключение. Время и смещение не влияют на вычисления и останутся такими же в результате.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
dayOfMonth- день месяца для установки в результате, от 1 до 28-31 - Возвращает:
OffsetDateTime, основанный на этой дате и времени с запрошенным днём, не null- Исключение:
-
DateTimeException- если значение дня месяца недействительно или если день месяца недействителен для месяца
сДнёмГода
public OffsetDateTime withDayOfYear(int dayOfYear)
OffsetDateTime с изменённым днём года. Время и смещение не влияют на вычисления и останутся такими же в результате. Если результирующая OffsetDateTime недействительна, выбрасывается исключение.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
dayOfYear- день года для установки в результате, от 1 до 365-366 - Возвращает:
OffsetDateTime, основанный на этой дате с запрошенным днём, не null- Исключение:
-
DateTimeException- если значение дня года недействительно или если день года недействителен для года
сЧасом
public OffsetDateTime withHour(int hour)
OffsetDateTime с изменённым часом. Дата и смещение не влияют на вычисления и останутся такими же в результате.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
hour- час для установки в результате, от 0 до 23 - Возвращает:
OffsetDateTime, основанный на этой дате и времени с запрошенным часом, не null- Исключение:
-
DateTimeException- если значение часа недействительно
сМинутой
public OffsetDateTime withMinute(int minute)
OffsetDateTime с изменённой минутой. Дата и смещение не влияют на вычисления и останутся такими же в результате.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
minute- минута для установки в результате, от 0 до 59 - Возвращает:
OffsetDateTime, основанный на этой дате и времени с запрошенной минутой, не null- Исключение:
-
DateTimeException- если значение минуты недействительно
сСекундой
public OffsetDateTime withSecond(int second)
OffsetDateTime с изменённой секундой. Дата и смещение не влияют на вычисления и останутся такими же в результате.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
second- секунда для установки в результате, от 0 до 59 - Возвращает:
OffsetDateTime, основанный на этой дате и времени с запрошенной секундой, не null- Исключение:
-
DateTimeException- если значение секунды недействительно
сНаносекундами
public OffsetDateTime withNano(int nanoOfSecond)
OffsetDateTime с изменёнными наносекундами. Дата и смещение не влияют на вычисления и останутся такими же в результате.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
nanoOfSecond- наносекунды для установки в результате, от 0 до 999 999 999 - Возвращает:
OffsetDateTime, основанный на этой дате и времени с запрошенными наносекундами, не null- Исключение:
-
DateTimeException- если значение наносекунд недействительно
обрезанныйДо
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.
Вычисление делегируется объекту amount вызовом TemporalAmount.subtractFrom(Temporal). Реализация amount может свободно реализовывать вычитание любым способом, однако обычно она обращается к minus(long, TemporalUnit). Ознакомьтесь с документацией реализации amount, чтобы определить, можно ли успешно выполнить вычитание.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Указано в:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- значение для вычитания, не null - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с выполненным вычитанием, не null - Исключения:
-
DateTimeException- если вычитание не может быть выполнено -
ArithmeticException- если происходит переполнение числового значения
minus
public OffsetDateTime minus(long amountToSubtract, TemporalUnit unit)
Это возвращает OffsetDateTime, на основе текущего, с вычтенным значением в терминах указанной единицы. Если вычесть значение невозможно, потому что единица не поддерживается или по другой причине, выбрасывается исключение.
Этот метод эквивалентен plus(long, TemporalUnit) с отрицательным значением. См. этот метод для полного описания того, как работает сложение, а следовательно, и вычитание.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Указано в:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- значение единицы для вычитания из результата, может быть отрицательным -
unit- единица значения для вычитания, не null - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с вычтенным указанным значением, не null - Исключения:
-
DateTimeException- если вычитание не может быть выполнено -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если происходит переполнение числового значения
minusYears
public OffsetDateTime minusYears(long years)
OffsetDateTime с вычтенным указанным количеством лет. Этот метод вычитает указанное количество из поля лет в три шага:
- Вычесть введённые года из поля года
- Проверить, будет ли результирующая дата некорректной
- При необходимости настроить день месяца на последний допустимый день
Например, 2008-02-29 (високосный год) минус один год приведет к некорректной дате 2007-02-29 (обычный год). Вместо возвращения некорректного результата, вместо этого выбирается последний допустимый день месяца, 2007-02-28.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
years- года для вычитания, могут быть отрицательными - Возвращает:
- an
OffsetDateTimeна основе этого объекта date-time с вычтенными годами, не null - Исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон дат
minusMonths
public OffsetDateTime minusMonths(long months)
OffsetDateTime с вычтенным указанным количеством месяцев. Этот метод вычитает указанное количество из поля месяцев в три шага:
- Вычесть введённые месяцы из поля месяца года
- Проверить, будет ли результирующая дата некорректной
- При необходимости настроить день месяца на последний допустимый день
Например, 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 используя указанный объект стратегии запроса. Объект 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);
Этот экземпляр неизменяем и не изменяется в результате вызова этого метода.
- Specified by:
-
adjustIntoв интерфейсеTemporalAdjuster - Parameters:
-
temporal- целевой объект для настройки, не null - Returns:
- настроенный объект, не null
- Throws:
-
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, сформированный из этой даты-времени и указанного часового пояса. Это преобразование игнорирует видимую локальную дату-время и вместо этого использует основной момент времени. Это предотвращает проблемы с локальными разрывами или перекрытиями временной шкалы. Результат может иметь разные значения для полей, таких как час, минута и даже день.
Чтобы попытаться сохранить значения полей, используйте atZoneSimilarLocal(ZoneId). Чтобы использовать сдвиг как идентификатор часового пояса, используйте toZonedDateTime().
- Parameters:
-
zone- используемый часовой пояс, не null - Returns:
- временная зона, сформированная из этой даты-времени, не null
atZoneSimilarLocal
public ZonedDateTime atZoneSimilarLocal(ZoneId zone)
Возвращает 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()
Это позволяет преобразовать эту дату-время в значение поля epoch-seconds. Это в первую очередь предназначено для преобразований низкого уровня, а не для использования в обычных приложениях.
- Returns:
- количество секунд с начала эпохи 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().- Specified by:
-
compareToв интерфейсеComparable<OffsetDateTime> - Parameters:
-
other- другая дата и время для сравнения, не null - Returns:
- значение сравнения, то есть сравнение с мгновением времени
other, если они не равны; и если равны мгновению времениother, то сравнение локальной даты и времениother - See Also:
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.
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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/OffsetDateTime.html