Класс 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 должна иметь точно определенную связь с международной гражданской временной шкалой.
Для сегмента с 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 Максимально поддерживаемый |
static Instant |
MIN Минимально поддерживаемый |
Методы
| Модификатор и Тип | Метод и Описание |
|---|---|
Temporal |
adjustInto(Temporal temporal) Настраивает указанный временной объект на данную точку времени. |
OffsetDateTime |
atOffset(ZoneOffset offset) Объединяет этот момент времени со смещением, чтобы создать |
ZonedDateTime |
atZone(ZoneId zone) Объединяет этот момент времени с часовым поясом, чтобы создать |
int |
compareTo(Instant otherInstant) Сравнивает этот момент времени с указанным моментом времени. |
boolean |
equals(Object otherInstant) Проверяет, равен ли этот момент времени указанному моменту времени. |
static Instant |
from(TemporalAccessor temporal) Получает экземпляр |
int |
get(TemporalField field) Получает значение указанного поля из этого момента времени в виде |
long |
getEpochSecond() Получает количество секунд с эпохи Java 1970-01-01T00:00:00Z. |
long |
getLong(TemporalField field) Получает значение указанного поля из этого момента времени в виде |
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) Получает экземпляр |
static Instant |
ofEpochSecond(long epochSecond) Получает экземпляр |
static Instant |
ofEpochSecond(long epochSecond,
long nanoAdjustment) Получает экземпляр |
static Instant |
parse(CharSequence text) Получает экземпляр |
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) Возвращает копию этого |
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.
© 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.