Класс 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
LocalDateTime.MIN и ZoneOffset.MAX. Это можно использовать в приложении как дату и время "очень далёкого прошлого".MAX
public static final OffsetDateTime MAX
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 в качестве аргумента. Поддерживается ли поле, определяется полем.
- Определено в:
-
isSupportedв интерфейсеTemporalAccessor - Параметры:
-
field- поле для проверки, null возвращает false - Возвращает:
- true, если поле поддерживается этим датой-временем, false — если нет
isSupported
public boolean isSupported(TemporalUnit unit)
Это проверяет, может ли указанный интервал быть добавлен к или вычтен из этой даты и времени. Если false, то вызов методов plus(long, TemporalUnit) и minus вызовет исключение.
Если единица измерения является ChronoUnit, то запрос реализуется здесь. Поддерживаемые единицы измерения:
-
NANOS -
MICROS -
MILLIS -
SECONDS -
MINUTES -
HOURS -
HALF_DAYS -
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(java.time.ZoneOffset).
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
offset- смещение часового пояса для изменения, не null - Возвращает:
- объект
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- если происходит переполнение чисел
with
public OffsetDateTime with(TemporalField field, long newValue)
Это возвращает копию, основанную на этом объекте, со значением для указанного поля, изменённым. Это можно использовать для изменения любого поддерживаемого поля, такого как год, месяц или день месяца. Если значение установить невозможно, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
В некоторых случаях изменение указанного поля может привести к тому, что полученное время станет недопустимым, например, изменение месяца с 31 января на февраль сделает день месяца недопустимым. В таких случаях поле отвечает за разрешение даты. Обычно оно выберет предыдущую допустимую дату, которая в этом примере будет последним допустимым днём февраля.
Если поле является ChronoField, то корректировка реализуется здесь.
Поле INSTANT_SECONDS вернёт время с указанным мгновением. Смещение и наносекунды не изменяются. Если новое значение мгновения находится за пределами допустимого диапазона, будет выброшено DateTimeException.
Поле OFFSET_SECONDS вернёт время с указанным смещением. Локальное время неизменно. Если новое значение смещения находится за пределами допустимого диапазона, будет выброшено DateTimeException.
Другие supported fields будут вести себя в соответствии с соответствующим методом в LocalDateTime. В этом случае смещение не участвует в вычислении и останется неизменным.
Все другие ChronoField объекты будут вызывать UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.adjustInto(Temporal, long) с this в качестве аргумента. В этом случае поле определяет, нужно ли и как корректировать мгновение.
Этот объект неизменяемый и не затрагивается этим вызовом метода.
- Specified by:
-
withв интерфейсеTemporal - Parameters:
-
field- поле для установки в результате, не null -
newValue- новое значение поля в результате - Returns:
- копия
OffsetDateTimeна основеthisс указанным полем, не null - Throws:
-
DateTimeException- если поле не может быть установлено -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если происходит переполнение числового значения
withYear
public OffsetDateTime withYear(int year)
OffsetDateTime с изменённым годом. Время и смещение не влияют на вычисление и будут такими же в результате. Если день месяца недопустим для года, он будет изменён на последний допустимый день месяца.
Этот объект неизменяемый и не затрагивается этим вызовом метода.
- Parameters:
-
year- год для установки в результате, от MIN_YEAR до MAX_YEAR - Returns:
- копия
OffsetDateTimeна основе этого объекта даты и времени с запрошенным годом, не null - Throws:
-
DateTimeException- если значение года недопустимо
withMonth
public OffsetDateTime withMonth(int month)
OffsetDateTime с изменённым месяцем года. Время и смещение не влияют на вычисление и будут такими же в результате. Если день месяца недопустим для года, он будет изменён на последний допустимый день месяца.
Этот объект неизменяемый и не затрагивается этим вызовом метода.
- Parameters:
-
month- месяц года для установки в результате, от 1 (январь) до 12 (декабрь) - Returns:
- копия
OffsetDateTimeна основе этого объекта даты и времени с запрошенным месяцем, не null - Throws:
-
DateTimeException- если значение месяца года недопустимо
withDayOfMonth
public OffsetDateTime withDayOfMonth(int dayOfMonth)
OffsetDateTime с изменённым днём месяца. Если полученный OffsetDateTime недопустим, выбрасывается исключение. Время и смещение не влияют на вычисление и будут такими же в результате.
Этот объект неизменяемый и не затрагивается этим вызовом метода.
- Parameters:
-
dayOfMonth- день месяца для установки в результате, от 1 до 28-31 - Returns:
- копия
OffsetDateTimeна основе этого объекта даты и времени с запрошенным днём, не null - Throws:
-
DateTimeException- если значение дня месяца недопустимо или если день месяца недопустим для месяца-года
withDayOfYear
public OffsetDateTime withDayOfYear(int dayOfYear)
OffsetDateTime с изменённым днём года. Время и смещение не влияют на вычисление и будут такими же в результате. Если полученный OffsetDateTime недопустим, выбрасывается исключение.
Этот объект неизменяемый и не затрагивается этим вызовом метода.
- Parameters:
-
dayOfYear- день года для установки в результате, от 1 до 365-366 - Returns:
- копия
OffsetDateTimeна основе этой даты с запрошенным днём, не null - Throws:
-
DateTimeException- если значение дня года недопустимо или если день года недопустим для года
withHour
public OffsetDateTime withHour(int hour)
OffsetDateTime с изменённым часом суток. Дата и смещение не влияют на вычисление и будут такими же в результате.
Этот объект неизменяемый и не затрагивается этим вызовом метода.
- Parameters:
-
hour- час суток для установки в результате, от 0 до 23 - Returns:
- копия
OffsetDateTimeна основе этого объекта даты и времени с запрошенным часом, не null - Throws:
-
DateTimeException- если значение часа недопустимо
withMinute
public OffsetDateTime withMinute(int minute)
OffsetDateTime с изменённой минутой часа. Дата и смещение не влияют на вычисление и будут такими же в результате.
Этот объект неизменяемый и не затрагивается этим вызовом метода.
- Parameters:
-
minute- минута часа для установки в результате, от 0 до 59 - Returns:
- копия
OffsetDateTimeна основе этого объекта даты и времени с запрошенной минутой, не null - Throws:
-
DateTimeException- если значение минуты недопустимо
withSecond
public OffsetDateTime withSecond(int second)
OffsetDateTime с изменённой секундой минуты. Дата и смещение не влияют на вычисление и будут такими же в результате.
Этот объект неизменяемый и не затрагивается этим вызовом метода.
- Parameters:
-
second- секунда минуты для установки в результате, от 0 до 59 - Returns:
- копия
OffsetDateTimeна основе этого объекта даты и времени с запрошенной секундой, не null - Throws:
-
DateTimeException- если значение секунды недопустимо
withNano
public OffsetDateTime withNano(int nanoOfSecond)
OffsetDateTime с изменёнными наносекундами секунды. Дата и смещение не влияют на вычисление и будут такими же в результате.
Этот объект неизменяемый и не затрагивается этим вызовом метода.
- Parameters:
-
nanoOfSecond- наносекунды секунды для установки в результате, от 0 до 999 999 999 - Returns:
- копия
OffsetDateTimeна основе этого объекта даты и времени с запрошенными наносекундами, не null - Throws:
-
DateTimeException- если значение наносекунд недопустимо
truncatedTo
public OffsetDateTime truncatedTo(TemporalUnit unit)
OffsetDateTime с обрезкой времени. Обрезка возвращает копию исходного времени с полями, меньшими указанной единицы, установленных в ноль. Например, обрезка с помощью единицы minutes установит секунды и наносекунды в ноль.
Единица должна иметь длительность, которая делится на длину стандартного дня без остатка. Это включает все предоставленные единицы времени в ChronoUnit и DAYS. Другие единицы вызывают исключение.
Смещение не влияет на вычисление и будет таким же в результате.
Этот объект неизменяемый и не затрагивается этим вызовом метода.
- Parameters:
-
unit- единица для обрезки, не null - Returns:
- копия
OffsetDateTimeна основе этого объекта даты и времени с обрезанным временем, не null - Throws:
-
DateTimeException- если обрезка невозможна -
UnsupportedTemporalTypeException- если единица не поддерживается
плюс
public OffsetDateTime plus(TemporalAmount amountToAdd)
Это возвращает копию, базируясь на этой, с добавленным указанным значением. Значение обычно представляет собой Period или Duration, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту значения путем вызова TemporalAmount.addTo(Temporal). Реализация значения свободна реализовывать добавление по своему усмотрению, однако, как правило, она обращается к plus(long, TemporalUnit). Обратитесь к документации реализации значения, чтобы определить, может ли она быть успешно добавлена.
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Specified by:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- добавляемое значение, не null - Возвращает:
- копию даты и времени, основанную на этой дате и времени, с выполненным добавлением, не null
- Исключение:
-
DateTimeException- если добавление невозможно -
ArithmeticException- если происходит переполнение числового значения
плюс
public OffsetDateTime plus(long amountToAdd, TemporalUnit unit)
Это возвращает копию, базируясь на этой, с добавленным значением в терминах единицы измерения. Если добавление значения невозможно, потому что единица измерения не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoUnit, то добавление реализуется методом LocalDateTime.plus(long, TemporalUnit). Смещение не входит в вычисление и останется неизменным в результате.
Если поле не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.addTo(Temporal, long), передавая this в качестве аргумента. В этом случае единица измерения определяет, производить ли и как выполнять добавление.
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Specified by:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- количество единицы измерения для добавления к результату, может быть отрицательным -
unit- единица измерения значения для добавления, не null - Возвращает:
- копию даты и времени, основанную на этой дате и времени, с добавленным указанным значением, не null
- Исключение:
-
DateTimeException- если добавление невозможно -
UnsupportedTemporalTypeException- если единица измерения не поддерживается -
ArithmeticException- если происходит переполнение числового значения
plusYears
public OffsetDateTime plusYears(long years)
OffsetDateTime с добавленным указанным количеством лет. Этот метод добавляет указанное значение к полю «год» в три шага:
- Добавление введенных лет к полю «год»
- Проверка, является ли полученная дата недействительной
- Корректировка дня месяца до последнего допустимого дня, если необходимо
Например, 2008-02-29 (високосный год) плюс один год даст недействительную дату 2009-02-29 (обычный год). Вместо возвращения недействительного результата вместо этого выбирается последний допустимый день месяца, 2009-02-28.
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Параметры:
-
years- добавляемые годы, могут быть отрицательными - Возвращает:
- копию даты и времени, основанную на этой дате и времени, с добавленными годами, не null
- Исключение:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusMonths
public OffsetDateTime plusMonths(long months)
OffsetDateTime с добавленным указанным количеством месяцев. Этот метод добавляет указанное значение к полю «месяц» в три шага:
- Добавление введенных месяцев к полю «месяц»
- Проверка, является ли полученная дата недействительной
- Корректировка дня месяца до последнего допустимого дня, если необходимо
Например, 2007-03-31 плюс один месяц даст недействительную дату 2007-04-31. Вместо возвращения недействительного результата вместо этого выбирается последний допустимый день месяца, 2007-04-30.
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Параметры:
-
months- добавляемые месяцы, могут быть отрицательными - Возвращает:
- копию даты и времени, основанную на этой дате и времени, с добавленными месяцами, не 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- если единицу измерения нельзя добавить к этому типу
минус
public OffsetDateTime minus(TemporalAmount amountToSubtract)
Это возвращает копию, базируясь на этой, с вычтенным указанным значением. Значение обычно представляет собой Period или Duration, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту значения путем вызова TemporalAmount.subtractFrom(Temporal). Реализация значения свободна реализовывать вычитание по своему усмотрению, однако, как правило, она обращается к minus(long, TemporalUnit). Обратитесь к документации реализации значения, чтобы определить, может ли она быть успешно вычтена.
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Specified by:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- значение для вычитания, не null - Возвращает:
- копию даты и времени, основанную на этой дате и времени, с произведённым вычитанием, не null
- Исключение:
-
DateTimeException- если вычитание невозможно -
ArithmeticException- если происходит переполнение числового значения
minus
public OffsetDateTime minus(long amountToSubtract, TemporalUnit unit)
Это возвращает новую дату и время, основанную на этой, с вычтенным указанным количеством в отношении единицы измерения. Если вычесть указанное количество невозможно, потому что единица измерения не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Этот метод эквивалентен методу plus(long, TemporalUnit) с отрицательным значением количества. Смотрите этот метод для полного описания того, как работает сложение, а следовательно, и вычитание.
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Specified by:
-
minusв интерфейсеTemporal - Parameters:
-
amountToSubtract- количество единиц измерения для вычитания из результата, может быть отрицательным -
unit- единица измерения количества для вычитания, не null - Returns:
- новая дата и время, основанная на этом объекте даты и времени с вычтенным указанным количеством, не null
- Throws:
-
DateTimeException- если вычитание невозможно -
UnsupportedTemporalTypeException- если единица измерения не поддерживается -
ArithmeticException- если происходит переполнение числового значения
minusYears
public OffsetDateTime minusYears(long years)
Этот метод вычитает указанное количество из поля «год» в три шага:
- Вычитает входные годы из поля «год»
- Проверяет, является ли полученная дата недействительной
- Если необходимо, корректирует день месяца до последнего действительного дня
Например, 2008-02-29 (високосный год) минус один год приведет к недействительной дате 2007-02-29 (обычный год). Вместо возвращения недействительного результата выбирается последний действительный день месяца, 2007-02-28.
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Parameters:
-
years- количество лет для вычитания, может быть отрицательным - Returns:
- новая дата и время, основанная на этом объекте даты и времени с вычтенными годами, не null
- Throws:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
minusMonths
public OffsetDateTime minusMonths(long months)
Этот метод вычитает указанное количество из поля «месяц» в три шага:
- Вычитает входные месяцы из поля «месяц года»
- Проверяет, является ли полученная дата недействительной
- Если необходимо, корректирует день месяца до последнего действительного дня
Например, 2007-03-31 минус один месяц приведет к недействительной дате 2007-02-31. Вместо возвращения недействительного результата выбирается последний действительный день месяца, 2007-02-28.
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Parameters:
-
months- количество месяцев для вычитания, может быть отрицательным - Returns:
- новая дата и время, основанная на этом объекте даты и времени с вычтенными месяцами, не null
- Throws:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
minusWeeks
public OffsetDateTime minusWeeks(long weeks)
Этот метод вычитает указанное количество недель из поля «день», уменьшая поля «месяц» и «год» по мере необходимости, чтобы результат оставался действительным. Результат является недействительным только в том случае, если максимальный/минимальный год превышен.
Например, 2009-01-07 минус одна неделя приведет к 2008-12-31.
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Parameters:
-
weeks- количество недель для вычитания, может быть отрицательным - Returns:
- новая дата и время, основанная на этом объекте даты и времени с вычтенными неделями, не null
- Throws:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
minusDays
public OffsetDateTime minusDays(long days)
Этот метод вычитает указанное количество из поля «день», уменьшая поля «месяц» и «год» по мере необходимости, чтобы результат оставался действительным. Результат является недействительным только в том случае, если максимальный/минимальный год превышен.
Например, 2009-01-01 минус один день приведет к 2008-12-31.
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Parameters:
-
days- количество дней для вычитания, может быть отрицательным - Returns:
- новая дата и время, основанная на этом объекте даты и времени с вычтенными днями, не null
- Throws:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
minusHours
public OffsetDateTime minusHours(long hours)
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Parameters:
-
hours- количество часов для вычитания, может быть отрицательным - Returns:
- новая дата и время, основанная на этом объекте даты и времени с вычтенными часами, не null
- Throws:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
minusMinutes
public OffsetDateTime minusMinutes(long minutes)
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Parameters:
-
minutes- количество минут для вычитания, может быть отрицательным - Returns:
- новая дата и время, основанная на этом объекте даты и времени с вычтенными минутами, не null
- Throws:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
minusSeconds
public OffsetDateTime minusSeconds(long seconds)
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Parameters:
-
seconds- количество секунд для вычитания, может быть отрицательным - Returns:
- новая дата и время, основанная на этом объекте даты и времени с вычтенными секундами, не null
- Throws:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
minusNanos
public OffsetDateTime minusNanos(long nanos)
Этот экземпляр неизменяем и не изменяется этим вызовом метода.
- Parameters:
-
nanos- количество наносекунд для вычитания, может быть отрицательным - Returns:
- новая дата и время, основанная на этом объекте даты и времени с вычтенными наносекундами, не null
- Throws:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
query
public <R> R query(TemporalQuery<R> query)
Запрашивает этот объект даты и времени, используя указанный объект стратегии запроса. Объект запроса определяет логику, используемую для получения результата. Прочитайте документацию запроса, чтобы понять, каким будет результат этого метода.
Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) на указанном запросе, передав this в качестве аргумента.
- Specified by:
-
queryв интерфейсеTemporalAccessor - Type Parameters:
-
R- тип результата - Parameters:
-
query- запрос для вызова, не null - Returns:
- результат запроса, может быть null (определяется запросом)
- Throws:
-
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, гарантируя, что результат имеет тот же момент времени. Возвращает ZonedDateTime , сформированную из этой даты и времени и указанного часового пояса. Это преобразование игнорирует видимые локальные дату и время и использует основной момент времени вместо этого. Это позволяет избежать проблем с разрывами или перекрытиями локальной временной шкалы. Результат может иметь разные значения для таких полей, как час, минута, а даже день.
Чтобы попытаться сохранить значения полей, используйте atZoneSimilarLocal(ZoneId). Чтобы использовать смещение в качестве идентификатора часового пояса, используйте toZonedDateTime().
- Parameters:
-
zone- используемый часовой пояс, не null - Returns:
- объект zoned date-time, сформированный из этой даты и времени, не null
atZoneSimilarLocal
public ZonedDateTime atZoneSimilarLocal(ZoneId zone)
ZonedDateTime, пытаясь сохранить ту же локальную дату и время. Возвращает ZonedDateTime , сформированную из этой даты и времени и указанного часового пояса. По возможности результат будет иметь ту же локальную дату и время, что и этот объект.
Правила часового пояса, такие как летнее время, означают, что не каждое время на локальной временной шкале существует. Если локальная дата и время находятся в разрыве или перекрытии в соответствии с правилами, используется решатель для определения результирующего локального времени и смещения. Этот метод использует ZonedDateTime.ofLocal(LocalDateTime, ZoneId, ZoneOffset), чтобы сохранить смещение из этого экземпляра, если это возможно.
Более точный контроль над разрывами и перекрытиями доступен двумя способами. Если вы просто хотите использовать более позднее смещение при перекрытиях, вызовите ZonedDateTime.withLaterOffsetAtOverlap() сразу после этого метода.
Чтобы создать zoned date-time в тот же момент, независимо от локальной временной шкалы, используйте atZoneSameInstant(ZoneId). Чтобы использовать смещение в качестве идентификатора часового пояса, используйте toZonedDateTime().
- Parameters:
-
zone- используемый часовой пояс, не null - Returns:
- объект zoned date-time, сформированный из этой даты и самого раннего действительного времени для часового пояса, не null
toOffsetTime
public OffsetTime toOffsetTime()
OffsetTime. Возвращает offset time с тем же локальным временем и смещением.
- Returns:
- объект OffsetTime, представляющий время и смещение, не null
toZonedDateTime
public ZonedDateTime toZonedDateTime()
ZonedDateTime используя смещение в качестве идентификатора часового пояса. Создаёт наипростейший возможный ZonedDateTime, используя смещение в качестве идентификатора часового пояса.
Чтобы контролировать используемый часовой пояс, см. atZoneSameInstant(ZoneId) и atZoneSimilarLocal(ZoneId).
- Returns:
- объект zoned date-time, представляющий ту же локальную дату и время и смещение, не 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.
- Overrides:
-
equalsв классеObject - Parameters:
-
obj- объект для проверки, null возвращает false - Returns:
- true, если эта дата и время равны другой дате и времени
- See Also:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Returns:
- подходящий хэш-код
- See Also:
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
- Overrides:
-
toStringв классеObject - Returns:
- строковое представление этой даты и времени, не null
© 1993, 2023, 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/21/docs/api/java.base/java/time/OffsetDateTime.html