Класс 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.

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

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

Поля

Модификатор и тип Поле Описание
static Instant EPOCH

Константа для момента эпохи 1970-01-01T00:00:00Z.

static Instant MAX

Максимальное поддерживаемое значение Instant, '1000000000-12-31T23:59:59.999999999Z'.

static 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 otherInstant)

Проверяет, равно ли это мгновение указанному мгновению.

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

Минимальное поддерживаемое Instant, '-1000000000-01-01T00:00Z'. Приложение может использовать его как мгновение «далёкого прошлого».

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

MAX

public static final Instant MAX

Максимальное поддерживаемое Instant, '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)

Возвращает копию этого момента времени, усеченного до указанного единицы измерения.

Усечение момента времени возвращает копию исходного с полями, меньшими, чем указанная единица измерения, установленные в ноль. Поля рассчитываются на основе использования смещения 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) с интервалом, умноженным на 43 200 (12 часов).
  • DAYS - Возвращает Instant с добавлением указанного количества дней. Это эквивалентно plusSeconds(long) с интервалом, умноженным на 86 400 (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 - если произошел переполнение числовых значений

query

public <R> R query(TemporalQuery<R> query)

Запрос этого момента времени с использованием указанного запроса.

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

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

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

adjustInto

public Temporal adjustInto(Temporal temporal)

Настраивает указанный временной объект для имеющегося момента времени.

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

Настройка эквивалентна двукратному использованию Temporal.with(TemporalField, long), передавая ChronoField.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 - если произошел переполнение числовых значений

until

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 otherInstant)

Проверяет, равен ли этот момент указанному моменту.

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

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

hashCode

public int hashCode()

Возвращает хэш-код для этого момента.

Переопределяет:
hashCode в классе Object
Возвращает:
соответствующий хэш-код
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

toString

public String toString()

Строковое представление этого момента в формате ISO-8601.

Используется формат, аналогичный DateTimeFormatter.ISO_INSTANT.

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

© 1993, 2020, 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/11/docs/api/java.base/java/time/Instant.html

Spec-Zone .ru
спецификации, руководства, описания, API