Spec-Zone.ru › OpenJDK 17

Класс Instant

java.lang.Object
java.time.Instant
Все реализованные интерфейсы:
Serializable, Comparable<Instant>, Temporal, TemporalAccessor, TemporalAdjuster
public final class Instant extends Object implements Temporal, TemporalAdjuster, Comparable<Instant>, Serializable
Момент времени на временной шкале.

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

Диапазон моментов времени требует хранения числа, большего, чем long. Для этого класс хранит long, представляющий количество секунд с эпохи, и int, представляющий количество наносекунд в секунде, которое всегда будет находиться в диапазоне от 0 до 999 999 999. Количество секунд с эпохи измеряется с момента стандартной эпохи Java 1970-01-01T00:00:00Z, где моменты времени после эпохи имеют положительные значения, а более ранние моменты имеют отрицательные значения. Для обеих частей — количество секунд с эпохи и наносекунд — большее значение всегда соответствует более позднему моменту времени на временной шкале, чем меньшее значение.

Временная шкала

Длина солнечных суток — это стандартный способ измерения времени для человека. Традиционно она делится на 24 часа по 60 минут по 60 секунд, образуя 86400-секундные сутки.

Современное измерение времени основано на атомных часах, которые точно определяют секунду СИ относительно переходов атома цезия. Длина секунды СИ была определена очень близкой к 86400-й части суток.

К сожалению, по мере вращения Земли продолжительность суток меняется. Кроме того, со временем средняя продолжительность суток увеличивается, поскольку Земля замедляется. В результате продолжительность солнечных суток в 2012 году немного больше 86400 секунд СИ. Фактическая продолжительность любого данного дня и величина замедления вращения Земли непредсказуемы и могут быть определены только путем измерения. Временная шкала UT1 отражает точную длину суток, но доступна только некоторое время после завершения суток.

Временная шкала UTC — это стандартный подход к объединению всех дополнительных долей секунды от UT1 в целые секунды, известные как лишние секунды. Лишняя секунда может быть добавлена или удалена в зависимости от изменений вращения Земли. Таким образом, UTC допускает, что день может иметь 86399 секунд СИ или 86401 секунд СИ, когда это необходимо, чтобы день оставался согласованным с Солнцем.

Современная временная шкала UTC была введена в 1972 году, введя понятие целых лишних секунд. В период с 1958 по 1972 год определение UTC было сложным, с небольшими скачками в долях секунды и изменениями длительности условной секунды. По состоянию на 2012 год ведутся обсуждения по изменению определения UTC снова, с потенциальной возможностью удаления лишних секунд или внесения других изменений.

Учитывая сложность точного измерения времени, описанную выше, этот API Java определяет собственную временную шкалу — временную шкалу Java.

Временная шкала Java делит каждый календарный день ровно на 86400 подразделений, известных как секунды. Эти секунды могут отличаться от секунды СИ. Она очень близка к фактической международной гражданской шкале времени, определение которой меняется от времени к времени.

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

  • временная шкала Java должна тесно соответствовать основной международной гражданской шкале времени;
  • временная шкала Java должна точно соответствовать международной гражданской шкале времени в полдень каждого дня;
  • временная шкала Java должна иметь точно определённое соотношение с международной гражданской шкалой времени.
В настоящее время, по состоянию на 2013 год, на временной шкале Java два отрезка.

Для отрезка с 1972-11-03 (точная граница обсуждается ниже) до дальнейшего уведомления согласованная международная шкала времени — UTC (с лишними секундами). В этом отрезке временная шкала Java идентична UTC-SLS. Это идентично UTC в дни, когда лишних секунд нет. В дни, когда лишняя секунда есть, лишняя секунда распределяется равномерно на последние 1000 секунд дня, сохраняя видимость ровно 86400 секунд в день.

Для отрезка до 1972-11-03, простирающегося произвольно далеко в прошлое, согласованная международная шкала времени определяется как UT1, применяемая пролептически, что эквивалентно (среднему) солнечному времени на центральном меридиане (Гринвич). В этом отрезке временная шкала Java идентична согласованной международной шкале времени. Точная граница между двумя отрезками — это момент, когда UT1 = UTC между 1972-11-03T00:00 и 1972-11-04T12:00.

Реализации временной шкалы Java, использующие API JSR-310, не обязаны предоставлять часы с точностью до долей секунды или часы, которые идут монотонно или плавно. Поэтому реализации не обязаны фактически выполнять скачок UTC-SLS или каким-либо другим способом учитывать лишние секунды. Однако JSR-310 требует, чтобы реализации документировали подход, который они используют при определении часов, представляющих текущий момент времени. См. Clock для получения подробностей о доступных часах.

Временная шкала Java используется для всех классов даты и времени. Это включает Instant, LocalDate, LocalTime, OffsetDateTime, ZonedDateTime и Duration.

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

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

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

Модификатор и тип Поле Описание
static final Instant EPOCH
Константа для мгновения эпохи 1970-01-01T00:00:00Z.
static final Instant MAX
Максимальное поддерживаемое Instant, '1000000000-12-31T23:59:59.999999999Z'.
static final Instant MIN
Минимальное поддерживаемое Instant, '-1000000000-01-01T00:00Z'.

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

Модификатор и тип Метод Описание
Temporal adjustInto(Temporal temporal)
Настраивает указанный временной объект так, чтобы он соответствовал этому мгновению.
OffsetDateTime atOffset(ZoneOffset offset)
Объединяет это мгновение с смещением для создания OffsetDateTime.
ZonedDateTime atZone(ZoneId zone)
Объединяет это мгновение с часовым поясом для создания ZonedDateTime.
int compareTo(Instant otherInstant)
Сравнивает это мгновение с указанным мгновением.
boolean equals(Object other)
Проверяет, равно ли это мгновение указанному мгновению.
static Instant from(TemporalAccessor temporal)
Получает экземпляр Instant из временного объекта.
int get(TemporalField field)
Получает значение указанного поля из этого мгновения как int.
long getEpochSecond()
Получает количество секунд от эпохи Java 1970-01-01T00:00:00Z.
long getLong(TemporalField field)
Получает значение указанного поля из этого мгновения как long.
int getNano()
Получает количество наносекунд, позже на временной шкале, с начала секунды.
int hashCode()
Возвращает хэш-код для этого мгновения.
boolean isAfter(Instant otherInstant)
Проверяет, происходит ли это мгновение после указанного мгновения.
boolean isBefore(Instant otherInstant)
Проверяет, происходит ли это мгновение до указанного мгновения.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанный единица.
Instant minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого мгновения с указанным значением вычтенным.
Instant minus(TemporalAmount amountToSubtract)
Возвращает копию этого мгновения с указанным значением вычтенным.
Instant minusMillis(long millisToSubtract)
Возвращает копию этого мгновения с указанной продолжительностью в миллисекундах вычтенной.
Instant minusNanos(long nanosToSubtract)
Возвращает копию этого мгновения с указанной продолжительностью в наносекундах вычтенной.
Instant minusSeconds(long secondsToSubtract)
Возвращает копию этого мгновения с указанной продолжительностью во секундах вычтенной.
static Instant now()
Получает текущее мгновение с системных часов.
static Instant now(Clock clock)
Получает текущее мгновение с указанных часов.
static Instant ofEpochMilli(long epochMilli)
Получает экземпляр Instant, используя миллисекунды от эпохи 1970-01-01T00:00:00Z.
static Instant ofEpochSecond(long epochSecond)
Получает экземпляр Instant, используя секунды от эпохи 1970-01-01T00:00:00Z.
static Instant ofEpochSecond(long epochSecond, long nanoAdjustment)
Получает экземпляр Instant, используя секунды от эпохи 1970-01-01T00:00:00Z и наносекундную дробную часть секунды.
static Instant parse(CharSequence text)
Получает экземпляр Instant из строковой строки, такой как 2007-12-03T10:15:30.00Z.
Instant plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого мгновения с указанным значением добавленным.
Instant plus(TemporalAmount amountToAdd)
Возвращает копию этого мгновения с указанным значением добавленным.
Instant plusMillis(long millisToAdd)
Возвращает копию этого мгновения с указанной продолжительностью в миллисекундах добавленной.
Instant plusNanos(long nanosToAdd)
Возвращает копию этого мгновения с указанной продолжительностью в наносекундах добавленной.
Instant plusSeconds(long secondsToAdd)
Возвращает копию этого мгновения с указанной продолжительностью в секундах добавленной.
<R> R query(TemporalQuery<R> query)
Запрашивает это мгновение с использованием указанного запроса.
ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.
long toEpochMilli()
Преобразует это мгновение в количество миллисекунд от эпохи 1970-01-01T00:00:00Z.
String toString()
Строковое представление этого мгновения с использованием представления ISO-8601.
Instant truncatedTo(TemporalUnit unit)
Возвращает копию этого Instant, усеченную до указанной единицы.
long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет количество времени до другого мгновения в терминах указанной единицы.
Instant with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этого мгновения.
Instant with(TemporalField field, long newValue)
Возвращает копию этого мгновения с указанным полем, установленным на новое значение.

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

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

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

EPOCH

public static final Instant EPOCH
Константа для мгновения эпохи 1970-01-01T00:00:00Z.

MIN

public static final Instant MIN
Минимальное поддерживаемое мгновение, '-1000000000-01-01T00:00Z'. Его можно использовать в приложении как мгновение "далёкого прошлого".

Это на год раньше минимального LocalDateTime. Это обеспечивает достаточные значения для обработки диапазона ZoneOffset, которые влияют на мгновение помимо локального времени. Значение также выбрано так, чтобы значение года помещалось в int.

MAX

public static final Instant MAX
Максимальное поддерживаемое мгновение, '1000000000-12-31T23:59:59.999999999Z'. Его можно использовать в приложении как мгновение "далёкого будущего".

Это на год позже максимального LocalDateTime. Это обеспечивает достаточные значения для обработки диапазона ZoneOffset, которые влияют на мгновение помимо локального времени. Значение также выбрано так, чтобы значение года помещалось в int.

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

now

public static Instant now()
Получает текущее мгновение из системных часов.

Это обращается к system UTC clock для получения текущего мгновения.

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

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

now

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

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

Использование этого метода позволяет использовать альтернативные часы для тестирования. Альтернативные часы могут быть введены с помощью dependency injection.

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

ofEpochSecond

public static Instant ofEpochSecond(long epochSecond)
Получает экземпляр Instant, используя секунды от эпохи 1970-01-01T00:00:00Z.

Поле наносекунд установлено в ноль.

Параметры:
epochSecond - количество секунд от 1970-01-01T00:00:00Z
Возвращает:
мгновение, не null
Исключения:
DateTimeException - если мгновение превышает максимальное или минимальное мгновение

ofEpochSecond

public static Instant ofEpochSecond(long epochSecond, long nanoAdjustment)
Получает экземпляр Instant, используя секунды от эпохи 1970-01-01T00:00:00Z и наносекундную дробь секунды.

Этот метод позволяет передать произвольное количество наносекунд. Фабрика изменит значения секунды и наносекунд, чтобы гарантировать, что хранимые наносекунды находятся в диапазоне от 0 до 999 999 999. Например, следующее приведет к точно такому же мгновению:

  Instant.ofEpochSecond(3, 1);
  Instant.ofEpochSecond(4, -999_999_999);
  Instant.ofEpochSecond(2, 1000_000_001);
 
Параметры:
epochSecond - количество секунд от 1970-01-01T00:00:00Z
nanoAdjustment - корректировка наносекунд к количеству секунд, положительная или отрицательная
Возвращает:
мгновение, не null
Исключения:
DateTimeException - если мгновение превышает максимальное или минимальное мгновение
ArithmeticException - если произошел численный переполнение

ofEpochMilli

public static Instant ofEpochMilli(long epochMilli)
Получает экземпляр Instant, используя миллисекунды от эпохи 1970-01-01T00:00:00Z.

Секунды и наносекунды извлекаются из указанных миллисекунд.

Параметры:
epochMilli - количество миллисекунд от 1970-01-01T00:00:00Z
Возвращает:
мгновение, не null
Исключения:
DateTimeException - если мгновение превышает максимальное или минимальное мгновение

from

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

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

Преобразование извлекает INSTANT_SECONDS и NANO_OF_SECOND поля.

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

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

parse

public static Instant parse(CharSequence text)
Получает экземпляр Instant из текстовой строки, такой как 2007-12-03T10:15:30.00Z.

Строка должна представлять собой допустимое мгновение в формате UTC и анализируется с помощью DateTimeFormatter.ISO_INSTANT.

Параметры:
text - текст для анализа, не null
Возвращает:
проанализированное мгновение, не null
Исключения:
DateTimeParseException - если текст не может быть проанализирован

isSupported

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

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

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

  • NANO_OF_SECOND
  • MICRO_OF_SECOND
  • MILLI_OF_SECOND
  • INSTANT_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
Все остальные 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 вернёт допустимые значения на основе этой даты и времени, за исключением INSTANT_SECONDS, которое слишком велико для размещения в int и выбрасывает DateTimeException. Все остальные 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 - если произошел переполнение при вычислении

getEpochSecond

public long getEpochSecond()
Получает количество секунд с эпохи Java 1970-01-01T00:00:00Z.

Счётчик секунд эпохи — это простой счётчик секунд, где 0 секунд — это 1970-01-01T00:00:00Z. Часть наносекунд возвращается методом getNano().

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

getNano

public int getNano()
Получает количество наносекунд, следующих за началом секунды.

Значение наносекунд секунды измеряет общее количество наносекунд с момента секунды, возвращённой методом getEpochSecond().

Возвращает:
наносекунды в секунде, всегда положительные, не превышают 999 999 999

with

public Instant with(TemporalAdjuster adjuster)
Возвращает скопированную копию этого момента времени с внесённой корректировкой.

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

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

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

Указано:
with в интерфейсе Temporal
Параметры:
adjuster - корректировщик для использования, не null
Возвращает:
экземпляр Instant на основе this с произведённой корректировкой, не null
Выбрасывает:
DateTimeException - если корректировка не может быть произведена
ArithmeticException - если произошел переполнение при вычислении

with

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

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

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

  • NANO_OF_SECOND - Возвращает Instant с указанными наносекундами секунды. Эпоха-секунды останутся неизменными.
  • MICRO_OF_SECOND - Возвращает Instant с наносекундами, заменёнными указанными микросекундами, умноженными на 1000. Эпоха-секунды останутся неизменными.
  • MILLI_OF_SECOND - Возвращает Instant с наносекундами, заменёнными указанными миллисекундами, умноженными на 1 000 000. Эпоха-секунды останутся неизменными.
  • INSTANT_SECONDS - Возвращает Instant с указанными секундами эпохи. Наносекунды останутся неизменными.

Во всех случаях, если новое значение выходит за допустимый диапазон значений для поля, будет выброшено DateTimeException.

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

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

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

Указано:
with в интерфейсе Temporal
Параметры:
field - поле для установки в результате, не null
newValue - новое значение поля в результате
Возвращает:
экземпляр Instant на основе this с указанным полем, установленным, не null
Выбрасывает:
DateTimeException - если поле нельзя установить
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если произошел переполнение при вычислении

truncatedTo

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

Усечение момента времени возвращает копию оригинала с полями, меньшими, чем указанный временной интервал, установленный в ноль. Поля рассчитываются на основе использования UTC смещения, как показано в toString. Например, усечение с помощью временного интервала MINUTES округлится вниз до ближайшего часа, установив секунды и наносекунды в ноль.

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

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

Параметры:
unit - временной интервал для усечения, не null
Возвращает:
экземпляр Instant на основе этого момента времени с усечённым временем, не null
Выбрасывает:
DateTimeException - если временной интервал недействителен для усечения
UnsupportedTemporalTypeException - если временной интервал не поддерживается

plus

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

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

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

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

Указано:
plus в интерфейсе Temporal
Параметры:
amountToAdd - количество для добавления, не null
Возвращает:
экземпляр Instant на основе этого момента времени с выполненным добавлением, не null
Выбрасывает:
DateTimeException - если добавление невозможно
ArithmeticException - если произошел переполнение при вычислении

plus

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

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

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

  • NANOS - Возвращает Instant с добавлением указанного числа наносекунд. Это эквивалентно plusNanos(long).
  • MICROS - Возвращает Instant с добавлением указанного числа микросекунд. Это эквивалентно plusNanos(long) со значением, умноженным на 1000.
  • MILLIS - Возвращает Instant с добавлением указанного числа миллисекунд. Это эквивалентно plusNanos(long) со значением, умноженным на 1 000 000.
  • SECONDS - Возвращает Instant с добавлением указанного числа секунд. Это эквивалентно plusSeconds(long).
  • MINUTES - Возвращает Instant с добавлением указанного числа минут. Это эквивалентно plusSeconds(long) со значением, умноженным на 60.
  • HOURS - Возвращает Instant с добавлением указанного числа часов. Это эквивалентно plusSeconds(long) со значением, умноженным на 3600.
  • HALF_DAYS - Возвращает Instant с добавлением указанного числа полусуток. Это эквивалентно plusSeconds(long) со значением, умноженным на 43200 (12 часов).
  • DAYS - Возвращает Instant с добавлением указанного числа дней. Это эквивалентно plusSeconds(long) со значением, умноженным на 86400 (24 часа).

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

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

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

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

plusSeconds

public Instant plusSeconds(long secondsToAdd)
Возвращает копию этого момента времени с добавленной продолжительностью в секундах.

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

Параметры:
secondsToAdd - секунды для добавления, положительные или отрицательные
Возвращает:
экземпляр Instant на основе этого момента времени с добавленными секундами, не null
Выбрасывает:
DateTimeException - если результат превышает максимальное или минимальное значение момента времени
ArithmeticException - если происходит переполнение числовых значений

plusMillis

public Instant plusMillis(long millisToAdd)
Возвращает копию этого момента времени с добавленной продолжительностью в миллисекундах.

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

Параметры:
millisToAdd - миллисекунды для добавления, положительные или отрицательные
Возвращает:
экземпляр Instant на основе этого момента времени с добавленными миллисекундами, не null
Выбрасывает:
DateTimeException - если результат превышает максимальное или минимальное значение момента времени
ArithmeticException - если происходит переполнение числовых значений

plusNanos

public Instant plusNanos(long nanosToAdd)
Возвращает копию этого момента времени с добавленной продолжительностью в наносекундах.

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

Параметры:
nanosToAdd - наносекунды для добавления, положительные или отрицательные
Возвращает:
экземпляр Instant на основе этого момента времени с добавленными наносекундами, не null
Выбрасывает:
DateTimeException - если результат превышает максимальное или минимальное значение момента времени
ArithmeticException - если происходит переполнение числовых значений

minus

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

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

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

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

Определено в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract - значение для вычитания, не null
Возвращает:
экземпляр Instant на основе этого момента времени с произведённым вычитанием, не null
Выбрасывает:
DateTimeException - если вычитание невозможно
ArithmeticException - если происходит переполнение числовых значений

minus

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

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

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

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

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

minusSeconds

public Instant minusSeconds(long secondsToSubtract)
Возвращает копию этого момента времени с вычитанием указанной продолжительности в секундах.

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

Параметры:
secondsToSubtract - секунды для вычитания, положительные или отрицательные
Возвращает:
экземпляр Instant на основе этого момента времени с вычтенными секундами, не null
Выбрасывает:
DateTimeException - если результат превышает максимальное или минимальное значение момента времени
ArithmeticException - если происходит переполнение числовых значений

minusMillis

public Instant minusMillis(long millisToSubtract)
Возвращает копию этого момента времени с вычитанием указанной продолжительности в миллисекундах.

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

Параметры:
millisToSubtract - миллисекунды для вычитания, положительные или отрицательные
Возвращает:
экземпляр Instant на основе этого момента времени с вычтенными миллисекундами, не null
Выбрасывает:
DateTimeException - если результат превышает максимальное или минимальное значение момента времени
ArithmeticException - если происходит переполнение числовых значений

minusNanos

public Instant minusNanos(long nanosToSubtract)
Возвращает копию этого момента времени с вычитанием указанной продолжительности в наносекундах.

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

Параметры:
nanosToSubtract - наносекунды для вычитания, положительные или отрицательные
Возвращает:
экземпляр Instant на основе этого момента времени с вычтенными наносекундами, не null
Выбрасывает:
DateTimeException - если результат превышает максимальное или минимальное значение момента времени
ArithmeticException - если происходит переполнение числовых значений

запрос

public <R> R query(TemporalQuery<R> query)
Запрашивает это мгновение с помощью указанного запроса.

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

Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) на указанном запросе, передавая this в качестве аргумента.

Указано в:
query в интерфейсе TemporalAccessor
Типы параметров:
R - тип результата
Параметры:
query - запрос для вызова, не null
Возвращает:
результат запроса, может возвращать null (определяется запросом)
Исключения:
DateTimeException - если запрос не удается (определяется запросом)
ArithmeticException - если происходит переполнение числового значения (определяется запросом)

adjustInto

public Temporal adjustInto(Temporal temporal)
Корректирует указанный временной объект, чтобы он имел это мгновение.

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

Корректировка эквивалентна двукратному использованию Temporal.with(TemporalField, long), передавая ChronoField.INSTANT_SECONDS и ChronoField.NANO_OF_SECOND в качестве полей.

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

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

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

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

до

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

Это вычисляет продолжительность времени между двумя объектами Instant в терминах одной единицы TemporalUnit. Начальная и конечная точки — this и указанное мгновение. Результат будет отрицательным, если конец предшествует началу. Вычисление возвращает целое число, представляющее количество полных единиц между двумя мгновениями. Temporal , переданный в этот метод, преобразуется в Instant с помощью from(TemporalAccessor). Например, количество секунд между двумя датами можно вычислить с помощью startInstant.until(endInstant, SECONDS).

Есть два эквивалентных способа использования этого метода. Первый — вызвать этот метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):

   // these two lines are equivalent
   amount = start.until(end, SECONDS);
   amount = SECONDS.between(start, end);
 
Выбор должен быть сделан на основе того, что делает код более читаемым.

Вычисление реализовано в этом методе для ChronoUnit. Поддерживаются единицы NANOS, MICROS, MILLIS, SECONDS, MINUTES, HOURS, HALF_DAYS и DAYS. Другие значения ChronoUnit будут вызывать исключение.

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

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

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

atOffset

public OffsetDateTime atOffset(ZoneOffset offset)
Объединяет это мгновение со смещением, чтобы создать OffsetDateTime.

Это возвращает OffsetDateTime , сформированное из этого мгновения в указанном смещении от UTC/Гринвича. Исключение будет выброшено, если мгновение слишком велико, чтобы поместиться в дату и время со смещением.

Этот метод эквивалентен OffsetDateTime.ofInstant(this, offset).

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

atZone

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

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

Этот метод эквивалентен ZonedDateTime.ofInstant(this, zone).

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

toEpochMilli

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

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

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

Возвращает:
количество миллисекунд с эпохи 1970-01-01T00:00:00Z
Исключения:
ArithmeticException - если происходит переполнение числового значения

compareTo

public int compareTo(Instant otherInstant)
Сравнивает это мгновение с указанным мгновением.

Сравнение основано на позиции мгновений на временной шкале. Оно «совместимо с equals», как определено в Comparable.

Указано в:
compareTo в интерфейсе Comparable<Instant>
Параметры:
otherInstant - другое мгновение для сравнения, не null
Возвращает:
значение компаратора, отрицательное, если меньше, положительное, если больше
Исключения:
NullPointerException - если otherInstant равно null

isAfter

public boolean isAfter(Instant otherInstant)
Проверяет, является ли это мгновение после указанного мгновения.

Сравнение основано на позиции мгновений на временной шкале.

Параметры:
otherInstant - другое мгновение для сравнения, не null
Возвращает:
true, если это мгновение после указанного мгновения
Исключения:
NullPointerException - если otherInstant равно null

isBefore

public boolean isBefore(Instant otherInstant)
Проверяет, является ли это мгновение перед указанным мгновением.

Сравнение основано на позиции мгновений на временной шкале.

Параметры:
otherInstant - другое мгновение для сравнения, не null
Возвращает:
true, если это мгновение перед указанным мгновением
Исключения:
NullPointerException - если otherInstant равно null

equals

public boolean equals(Object other)
Проверяет, равно ли это мгновение указанному мгновению.

Сравнение основано на позиции мгновений на временной шкале.

Overrides:
equals в классе Object
Параметры:
other - другое мгновение, null возвращает false
Возвращает:
true, если другое мгновение равно этому
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает хэш-код для этого мгновения.
Overrides:
hashCode в классе Object
Возвращает:
подходящий хэш-код
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

public String toString()
Строковое представление этого мгновения с использованием представления ISO-8601.

Используемый формат совпадает с DateTimeFormatter.ISO_INSTANT.

Overrides:
toString в классе Object
Возвращает:
представление ISO-8601 этого мгновения, не null

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Instant.html

Spec-Zone.ru

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