Spec-Zone.ru › OpenJDK 8

Класс 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 два сегмента.

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

Для сегмента до 03.11.1972 г., простирающегося произвольно далеко назад, международная согласованная временная шкала определяется как 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. Часть наносекунд дня возвращается методом getNanosOfSecond.

Возвращает:
секунды с эпохи 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) со значением, умноженным на -1. Обратитесь к этому методу для полного описания того, как происходит добавление, а значит и вычитание.

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

Указано в:
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);

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

Specified by:
adjustInto в интерфейсе TemporalAdjuster
Parameters:
temporal - целевой объект для настройки, не null
Returns:
настроенный объект, не null
Throws:
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 в качестве первого аргумента и преобразованного входного временного объекта как второго аргумента.

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

Specified by:
until в интерфейсе Temporal
Parameters:
endExclusive - конечная дата, исключая ее, которая преобразуется в Instant, не null
unit - единица измерения, не null
Returns:
количество времени между этим моментом и конечным моментом
Throws:
DateTimeException - если интервал не может быть вычислен, или временной объект не может быть преобразован в Instant
UnsupportedTemporalTypeException - если единица не поддерживается
ArithmeticException - если произошло переполнение числовых значений

atOffset

public OffsetDateTime atOffset(ZoneOffset offset)

Объединяет этот момент времени со смещением, чтобы создать OffsetDateTime.

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

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

Parameters:
offset - смещение для объединения, не null
Returns:
дата и время со смещением, сформированные из этого момента и заданного смещения, не null
Throws:
DateTimeException - если результат выходит за поддерживаемый диапазон

atZone

public ZonedDateTime atZone(ZoneId zone)

Объединяет этот момент времени с часовым поясом, чтобы создать ZonedDateTime.

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

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

Parameters:
zone - часовой пояс для объединения, не null
Returns:
дата и время с часовым поясом, сформированные из этого момента и заданного часового пояса, не null
Throws:
DateTimeException - если результат выходит за поддерживаемый диапазон

toEpochMilli

public long toEpochMilli()

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

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

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

Returns:
количество миллисекунд с начала эпохи 1970-01-01T00:00:00Z
Throws:
ArithmeticException - если произошел переполнение числовых значений

compareTo

public int compareTo(Instant otherInstant)

Сравнивает этот момент времени с указанным.

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

Specified by:
compareTo в интерфейсе Comparable<Instant>
Parameters:
otherInstant - другой момент времени для сравнения, не null
Returns:
значение сравнения, отрицательное, если меньше, положительное, если больше
Throws:
NullPointerException - если otherInstant равен null

isAfter

public boolean isAfter(Instant otherInstant)

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

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

Parameters:
otherInstant - другой момент времени для сравнения, не null
Returns:
true, если этот момент времени после указанного
Throws:
NullPointerException - если otherInstant равен null

isBefore

public boolean isBefore(Instant otherInstant)

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

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

Parameters:
otherInstant - другой момент времени для сравнения, не null
Returns:
true, если этот момент времени до указанного
Throws:
NullPointerException - если otherInstant равен null

equals

public boolean equals(Object otherInstant)

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

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

Overrides:
equals в классе Object
Parameters:
otherInstant - другой момент времени, null возвращает false
Returns:
true, если другой момент времени равен этому
See Also:
Object.hashCode(), HashMap

hashCode

public int hashCode()

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

Overrides:
hashCode в классе Object
Returns:
подходящий хэш-код
See Also:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

toString

public String toString()

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

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

Overrides:
toString в классе Object
Returns:
представление этого момента времени в формате 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.

Spec-Zone.ru

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