Класс 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 должна иметь точно определённое соотношение с международной гражданской шкалой времени.
Для отрезка с 1972-11-03 (точная граница обсуждается ниже) до дальнейшего уведомления согласованная международная шкала времени — UTC (с лишними секундами). В этом отрезке временная шкала Java идентична UTC-SLS. Это идентично UTC в дни, когда лишних секунд нет. В дни, когда лишняя секунда есть, лишняя секунда распределяется равномерно на последние 1000 секунд дня, сохраняя видимость ровно 86400 секунд в день.
Для отрезка до 1972-11-03, простирающегося произвольно далеко в прошлое, согласованная международная шкала времени определяется как UT1, применяемая пролептически, что эквивалентно (среднему) солнечному времени на центральном меридиане (Гринвич). В этом отрезке временная шкала Java идентична согласованной международной шкале времени. Точная граница между двумя отрезками — это момент, когда UT1 = UTC между 1972-11-03T00:00 и 1972-11-04T12:00.
Реализации временной шкалы Java, использующие API JSR-310, не обязаны предоставлять часы с точностью до долей секунды или часы, которые идут монотонно или плавно. Поэтому реализации не обязаны фактически выполнять скачок UTC-SLS или каким-либо другим способом учитывать лишние секунды. Однако JSR-310 требует, чтобы реализации документировали подход, который они используют при определении часов, представляющих текущий момент времени. См. Clock для получения подробностей о доступных часах.
Временная шкала Java используется для всех классов даты и времени. Это включает Instant, LocalDate, LocalTime, OffsetDateTime, ZonedDateTime и Duration.
Это класс, базирующийся на значении; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, так как могут возникнуть непредсказуемые последствия. Например, в будущих версиях синхронизация может не работать. Для сравнения необходимо использовать метод equals.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С:
- 1.8
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final Instant |
EPOCH |
Константа для мгновения эпохи 1970-01-01T00:00:00Z. |
static final Instant |
MAX |
Максимальное поддерживаемое Instant, '1000000000-12-31T23:59:59.999999999Z'. |
static final Instant |
MIN |
Минимальное поддерживаемое Instant, '-1000000000-01-01T00:00Z'. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Temporal |
adjustInto |
Настраивает указанный временной объект так, чтобы он соответствовал этому мгновению. |
OffsetDateTime |
atOffset |
Объединяет это мгновение с смещением для создания OffsetDateTime. |
ZonedDateTime |
atZone |
Объединяет это мгновение с часовым поясом для создания ZonedDateTime. |
int |
compareTo |
Сравнивает это мгновение с указанным мгновением. |
boolean |
equals |
Проверяет, равно ли это мгновение указанному мгновению. |
static Instant |
from |
Получает экземпляр Instant из временного объекта. |
int |
get |
Получает значение указанного поля из этого мгновения как int. |
long |
getEpochSecond() |
Получает количество секунд от эпохи Java 1970-01-01T00:00:00Z. |
long |
getLong |
Получает значение указанного поля из этого мгновения как long. |
int |
getNano() |
Получает количество наносекунд, позже на временной шкале, с начала секунды. |
int |
hashCode() |
Возвращает хэш-код для этого мгновения. |
boolean |
isAfter |
Проверяет, происходит ли это мгновение после указанного мгновения. |
boolean |
isBefore |
Проверяет, происходит ли это мгновение до указанного мгновения. |
boolean |
isSupported |
Проверяет, поддерживается ли указанное поле. |
boolean |
isSupported |
Проверяет, поддерживается ли указанный единица. |
Instant |
minus |
Возвращает копию этого мгновения с указанным значением вычтенным. |
Instant |
minus |
Возвращает копию этого мгновения с указанным значением вычтенным. |
Instant |
minusMillis |
Возвращает копию этого мгновения с указанной продолжительностью в миллисекундах вычтенной. |
Instant |
minusNanos |
Возвращает копию этого мгновения с указанной продолжительностью в наносекундах вычтенной. |
Instant |
minusSeconds |
Возвращает копию этого мгновения с указанной продолжительностью во секундах вычтенной. |
static Instant |
now() |
Получает текущее мгновение с системных часов. |
static Instant |
now |
Получает текущее мгновение с указанных часов. |
static Instant |
ofEpochMilli |
Получает экземпляр Instant, используя миллисекунды от эпохи 1970-01-01T00:00:00Z. |
static Instant |
ofEpochSecond |
Получает экземпляр Instant, используя секунды от эпохи 1970-01-01T00:00:00Z. |
static Instant |
ofEpochSecond |
Получает экземпляр Instant, используя секунды от эпохи 1970-01-01T00:00:00Z и наносекундную дробную часть секунды. |
static Instant |
parse |
Получает экземпляр Instant из строковой строки, такой как 2007-12-03T10:15:30.00Z. |
Instant |
plus |
Возвращает копию этого мгновения с указанным значением добавленным. |
Instant |
plus |
Возвращает копию этого мгновения с указанным значением добавленным. |
Instant |
plusMillis |
Возвращает копию этого мгновения с указанной продолжительностью в миллисекундах добавленной. |
Instant |
plusNanos |
Возвращает копию этого мгновения с указанной продолжительностью в наносекундах добавленной. |
Instant |
plusSeconds |
Возвращает копию этого мгновения с указанной продолжительностью в секундах добавленной. |
<R> R |
query |
Запрашивает это мгновение с использованием указанного запроса. |
ValueRange |
range |
Получает диапазон допустимых значений для указанного поля. |
long |
toEpochMilli() |
Преобразует это мгновение в количество миллисекунд от эпохи 1970-01-01T00:00:00Z. |
String |
toString() |
Строковое представление этого мгновения с использованием представления ISO-8601. |
Instant |
truncatedTo |
Возвращает копию этого Instant, усеченную до указанной единицы. |
long |
until |
Вычисляет количество времени до другого мгновения в терминах указанной единицы. |
Instant |
with |
Возвращает скорректированную копию этого мгновения. |
Instant |
with |
Возвращает копию этого мгновения с указанным полем, установленным на новое значение. |
Подробное описание полей
EPOCH
public static final Instant EPOCH
MIN
public static final Instant MIN
Это на год раньше минимального LocalDateTime. Это обеспечивает достаточные значения для обработки диапазона ZoneOffset, которые влияют на мгновение помимо локального времени. Значение также выбрано так, чтобы значение года помещалось в int.
MAX
public static final Instant MAX
Это на год позже максимального 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()
Счётчик секунд эпохи — это простой счётчик секунд, где 0 секунд — это 1970-01-01T00:00:00Z. Часть наносекунд возвращается методом getNano().
- Возвращает:
- количество секунд с эпохи 1970-01-01T00:00:00Z
getNano
public int getNano()
Значение наносекунд секунды измеряет общее количество наносекунд с момента секунды, возвращённой методом getEpochSecond().
- Возвращает:
- наносекунды в секунде, всегда положительные, не превышают 999 999 999
with
public Instant with(TemporalAdjuster adjuster)
Возвращает Instant, основанный на этом, с откорректированным моментом времени. Корректировка производится с помощью указанного объекта стратегии корректировки. Прочитайте документацию корректировщика, чтобы понять, какая корректировка будет произведена.
Результат этого метода получается путём вызова метода TemporalAdjuster.adjustInto(Temporal) указанного корректировщика, передав this в качестве аргумента.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Указано:
-
withв интерфейсеTemporal - Параметры:
-
adjuster- корректировщик для использования, не null - Возвращает:
- экземпляр
Instantна основеthisс произведённой корректировкой, не null - Выбрасывает:
-
DateTimeException- если корректировка не может быть произведена -
ArithmeticException- если произошел переполнение при вычислении
with
public Instant with(TemporalField field, long newValue)
Возвращает Instant, основанный на этом, со значением для указанного поля изменённым. Если невозможно установить значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то корректировка выполняется здесь. Поддерживаемые поля ведут себя следующим образом:
-
NANO_OF_SECOND- ВозвращаетInstantс указанными наносекундами секунды. Эпоха-секунды останутся неизменными. -
MICRO_OF_SECOND- ВозвращаетInstantс наносекундами, заменёнными указанными микросекундами, умноженными на 1000. Эпоха-секунды останутся неизменными. -
MILLI_OF_SECOND- ВозвращаетInstantс наносекундами, заменёнными указанными миллисекундами, умноженными на 1 000 000. Эпоха-секунды останутся неизменными. -
INSTANT_SECONDS- ВозвращаетInstantс указанными секундами эпохи. Наносекунды останутся неизменными.
Во всех случаях, если новое значение выходит за допустимый диапазон значений для поля, будет выброшено DateTimeException.
Все остальные ChronoField экземпляры выбросят UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.adjustInto(Temporal, long), передав this в качестве аргумента. В этом случае поле определяет, как и нужно ли корректировать момент времени.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Указано:
-
withв интерфейсеTemporal - Параметры:
-
field- поле для установки в результате, не null -
newValue- новое значение поля в результате - Возвращает:
- экземпляр
Instantна основеthisс указанным полем, установленным, не null - Выбрасывает:
-
DateTimeException- если поле нельзя установить -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если произошел переполнение при вычислении
truncatedTo
public Instant truncatedTo(TemporalUnit unit)
Instant, усечённую до указанного временного интервала. Усечение момента времени возвращает копию оригинала с полями, меньшими, чем указанный временной интервал, установленный в ноль. Поля рассчитываются на основе использования UTC смещения, как показано в toString. Например, усечение с помощью временного интервала MINUTES округлится вниз до ближайшего часа, установив секунды и наносекунды в ноль.
Временной интервал должен иметь продолжительность, делящую длительность стандартного дня без остатка. Это включает все предоставленные единицы времени в ChronoUnit и DAYS. Другие единицы времени вызовут исключение.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
unit- временной интервал для усечения, не null - Возвращает:
- экземпляр
Instantна основе этого момента времени с усечённым временем, не null - Выбрасывает:
-
DateTimeException- если временной интервал недействителен для усечения -
UnsupportedTemporalTypeException- если временной интервал не поддерживается
plus
public Instant plus(TemporalAmount amountToAdd)
Возвращает Instant, основанный на этом, с добавлением указанного количества. Количество, как правило, Duration, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту количества вызовом TemporalAmount.addTo(Temporal). Реализация количества свободна реализовывать сложение любым способом, однако, обычно она обращается к plus(long, TemporalUnit). Обратитесь к документации реализации количества, чтобы определить, можно ли его успешно добавить.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Указано:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- количество для добавления, не null - Возвращает:
- экземпляр
Instantна основе этого момента времени с выполненным добавлением, не null - Выбрасывает:
-
DateTimeException- если добавление невозможно -
ArithmeticException- если произошел переполнение при вычислении
plus
public Instant plus(long amountToAdd, TemporalUnit unit)
Это возвращает Instant, основанный на этом, со значением, выраженным в единицах измерения, добавленным. Если добавление значения невозможно, потому что единица измерения не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoUnit, то добавление реализуется здесь. Поддерживаемые поля ведут себя следующим образом:
-
NANOS- ВозвращаетInstantс добавлением указанного числа наносекунд. Это эквивалентноplusNanos(long). -
MICROS- ВозвращаетInstantс добавлением указанного числа микросекунд. Это эквивалентноplusNanos(long)со значением, умноженным на 1000. -
MILLIS- ВозвращаетInstantс добавлением указанного числа миллисекунд. Это эквивалентноplusNanos(long)со значением, умноженным на 1 000 000. -
SECONDS- ВозвращаетInstantс добавлением указанного числа секунд. Это эквивалентноplusSeconds(long). -
MINUTES- ВозвращаетInstantс добавлением указанного числа минут. Это эквивалентноplusSeconds(long)со значением, умноженным на 60. -
HOURS- ВозвращаетInstantс добавлением указанного числа часов. Это эквивалентноplusSeconds(long)со значением, умноженным на 3600. -
HALF_DAYS- ВозвращаетInstantс добавлением указанного числа полусуток. Это эквивалентноplusSeconds(long)со значением, умноженным на 43200 (12 часов). -
DAYS- ВозвращаетInstantс добавлением указанного числа дней. Это эквивалентноplusSeconds(long)со значением, умноженным на 86400 (24 часа).
Все остальные ChronoUnit экземпляры будут выбрасывать исключение UnsupportedTemporalTypeException.
Если поле не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.addTo(Temporal, long), передавая this в качестве аргумента. В этом случае единица измерения определяет, как и нужно ли выполнять добавление.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- количество единиц измерения для добавления к результату, может быть отрицательным -
unit- единица измерения количества для добавления, не null - Возвращает:
- экземпляр
Instantна основе этого момента времени с добавлением указанного значения, не null - Выбрасывает:
-
DateTimeException- если добавление невозможно -
UnsupportedTemporalTypeException- если единица измерения не поддерживается -
ArithmeticException- если происходит переполнение числовых значений
plusSeconds
public Instant plusSeconds(long secondsToAdd)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
secondsToAdd- секунды для добавления, положительные или отрицательные - Возвращает:
- экземпляр
Instantна основе этого момента времени с добавленными секундами, не null - Выбрасывает:
-
DateTimeException- если результат превышает максимальное или минимальное значение момента времени -
ArithmeticException- если происходит переполнение числовых значений
plusMillis
public Instant plusMillis(long millisToAdd)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
millisToAdd- миллисекунды для добавления, положительные или отрицательные - Возвращает:
- экземпляр
Instantна основе этого момента времени с добавленными миллисекундами, не null - Выбрасывает:
-
DateTimeException- если результат превышает максимальное или минимальное значение момента времени -
ArithmeticException- если происходит переполнение числовых значений
plusNanos
public Instant plusNanos(long nanosToAdd)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
nanosToAdd- наносекунды для добавления, положительные или отрицательные - Возвращает:
- экземпляр
Instantна основе этого момента времени с добавленными наносекундами, не null - Выбрасывает:
-
DateTimeException- если результат превышает максимальное или минимальное значение момента времени -
ArithmeticException- если происходит переполнение числовых значений
minus
public Instant minus(TemporalAmount amountToSubtract)
Это возвращает Instant, основанный на этом, со значением вычтенным. Значение обычно является Duration, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту значения вызывая TemporalAmount.subtractFrom(Temporal). Реализация значения свободна реализовать вычитание любым способом, но обычно она вызывает minus(long, TemporalUnit). Обратитесь к документации реализации значения, чтобы определить, можно ли успешно произвести вычитание.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- значение для вычитания, не null - Возвращает:
- экземпляр
Instantна основе этого момента времени с произведённым вычитанием, не null - Выбрасывает:
-
DateTimeException- если вычитание невозможно -
ArithmeticException- если происходит переполнение числовых значений
minus
public Instant minus(long amountToSubtract, TemporalUnit unit)
Это возвращает Instant, основанный на этом, со значением, выраженным в единицах измерения, вычтенным. Если вычитание значения невозможно, потому что единица измерения не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Этот метод эквивалентен plus(long, TemporalUnit) с отрицательным значением. Смотрите этот метод для полного описания того, как работает добавление, и, следовательно, вычитание.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- количество единиц измерения для вычитания из результата, может быть отрицательным -
unit- единица измерения количества для вычитания, не null - Возвращает:
- экземпляр
Instantна основе этого момента времени с вычитанием указанного значения, не null - Выбрасывает:
-
DateTimeException- если вычитание невозможно -
UnsupportedTemporalTypeException- если единица измерения не поддерживается -
ArithmeticException- если происходит переполнение числовых значений
minusSeconds
public Instant minusSeconds(long secondsToSubtract)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
secondsToSubtract- секунды для вычитания, положительные или отрицательные - Возвращает:
- экземпляр
Instantна основе этого момента времени с вычтенными секундами, не null - Выбрасывает:
-
DateTimeException- если результат превышает максимальное или минимальное значение момента времени -
ArithmeticException- если происходит переполнение числовых значений
minusMillis
public Instant minusMillis(long millisToSubtract)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
millisToSubtract- миллисекунды для вычитания, положительные или отрицательные - Возвращает:
- экземпляр
Instantна основе этого момента времени с вычтенными миллисекундами, не null - Выбрасывает:
-
DateTimeException- если результат превышает максимальное или минимальное значение момента времени -
ArithmeticException- если происходит переполнение числовых значений
minusNanos
public Instant minusNanos(long nanosToSubtract)
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
nanosToSubtract- наносекунды для вычитания, положительные или отрицательные - Возвращает:
- экземпляр
Instantна основе этого момента времени с вычтенными наносекундами, не null - Выбрасывает:
-
DateTimeException- если результат превышает максимальное или минимальное значение момента времени -
ArithmeticException- если происходит переполнение числовых значений
запрос
public <R> R query(TemporalQuery<R> query)
Это запрашивает это мгновение с помощью указанного объекта стратегии запроса. Объект TemporalQuery определяет логику, используемую для получения результата. Прочитайте документацию запроса, чтобы понять, каким будет результат этого метода.
Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) на указанном запросе, передавая this в качестве аргумента.
- Указано в:
-
queryв интерфейсеTemporalAccessor - Типы параметров:
-
R- тип результата - Параметры:
-
query- запрос для вызова, не null - Возвращает:
- результат запроса, может возвращать null (определяется запросом)
- Исключения:
-
DateTimeException- если запрос не удается (определяется запросом) -
ArithmeticException- если происходит переполнение числового значения (определяется запросом)
adjustInto
public Temporal adjustInto(Temporal temporal)
Это возвращает временной объект того же наблюдаемого типа, что и входной, с мгновением, измененным на такое же, как это.
Корректировка эквивалентна двукратному использованию Temporal.with(TemporalField, long), передавая ChronoField.INSTANT_SECONDS и ChronoField.NANO_OF_SECOND в качестве полей.
В большинстве случаев более понятно изменить порядок вызова, используя Temporal.with(TemporalAdjuster):
// these two lines are equivalent, but the second approach is recommended temporal = thisInstant.adjustInto(temporal); temporal = temporal.with(thisInstant);
Этот экземпляр неизменяемый и не изменяется этим методом.
- Указано в:
-
adjustIntoв интерфейсеTemporalAdjuster - Параметры:
-
temporal- целевой объект для корректировки, не null - Возвращает:
- скорректированный объект, не null
- Исключения:
-
DateTimeException- если корректировка невозможна -
ArithmeticException- если происходит переполнение числового значения
до
public long until(Temporal endExclusive, TemporalUnit unit)
Это вычисляет продолжительность времени между двумя объектами Instant в терминах одной единицы TemporalUnit. Начальная и конечная точки — this и указанное мгновение. Результат будет отрицательным, если конец предшествует началу. Вычисление возвращает целое число, представляющее количество полных единиц между двумя мгновениями. Temporal , переданный в этот метод, преобразуется в Instant с помощью from(TemporalAccessor). Например, количество секунд между двумя датами можно вычислить с помощью startInstant.until(endInstant, SECONDS).
Есть два эквивалентных способа использования этого метода. Первый — вызвать этот метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):
// these two lines are equivalent amount = start.until(end, SECONDS); amount = SECONDS.between(start, end);Выбор должен быть сделан на основе того, что делает код более читаемым.
Вычисление реализовано в этом методе для ChronoUnit. Поддерживаются единицы NANOS, MICROS, MILLIS, SECONDS, MINUTES, HOURS, HALF_DAYS и DAYS. Другие значения ChronoUnit будут вызывать исключение.
Если единица не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.between(Temporal, Temporal) , передавая this в качестве первого аргумента и преобразованный входной временной объект в качестве второго аргумента.
Этот экземпляр неизменяемый и не изменяется этим методом.
- Указано в:
-
untilв интерфейсеTemporal - Параметры:
-
endExclusive- конечная дата, исключающая, которая преобразуется вInstant, не null -
unit- единица измерения величины, не null - Возвращает:
- количество времени между этим мгновением и конечным мгновением
- Исключения:
-
DateTimeException- если величина не может быть вычислена или конечный временной объект не может быть преобразован вInstant -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если происходит переполнение числового значения
atOffset
public OffsetDateTime atOffset(ZoneOffset offset)
OffsetDateTime. Это возвращает OffsetDateTime , сформированное из этого мгновения в указанном смещении от UTC/Гринвича. Исключение будет выброшено, если мгновение слишком велико, чтобы поместиться в дату и время со смещением.
Этот метод эквивалентен OffsetDateTime.ofInstant(this, offset).
- Параметры:
-
offset- смещение для объединения, не null - Возвращает:
- дата и время со смещением, сформированные из этого мгновения и указанного смещения, не null
- Исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон
atZone
public ZonedDateTime atZone(ZoneId zone)
ZonedDateTime. Это возвращает ZonedDateTime , сформированное из этого мгновения в указанном часовом поясе. Исключение будет выброшено, если мгновение слишком велико, чтобы поместиться в дату и время с часовым поясом.
Этот метод эквивалентен ZonedDateTime.ofInstant(this, zone).
- Параметры:
-
zone- часовой пояс для объединения, не null - Возвращает:
- дата и время с часовым поясом, сформированные из этого мгновения и указанного часового пояса, не null
- Исключения:
-
DateTimeException- если результат превышает поддерживаемый диапазон
toEpochMilli
public long toEpochMilli()
Если это мгновение представляет точку на временной шкале, слишком далекую в будущем или прошлом, чтобы поместиться в long миллисекунд, то выбрасывается исключение.
Если у этого мгновения есть точность больше, чем миллисекунда, то при преобразовании любая избыточная информация о точности будет отброшена, как если бы количество наносекунд было подвергнуто целочисленному делению на один миллион.
- Возвращает:
- количество миллисекунд с эпохи 1970-01-01T00:00:00Z
- Исключения:
-
ArithmeticException- если происходит переполнение числового значения
compareTo
public int compareTo(Instant otherInstant)
Сравнение основано на позиции мгновений на временной шкале. Оно «совместимо с equals», как определено в Comparable.
- Указано в:
-
compareToв интерфейсеComparable<Instant> - Параметры:
-
otherInstant- другое мгновение для сравнения, не null - Возвращает:
- значение компаратора, отрицательное, если меньше, положительное, если больше
- Исключения:
-
NullPointerException- если otherInstant равно null
isAfter
public boolean isAfter(Instant otherInstant)
Сравнение основано на позиции мгновений на временной шкале.
- Параметры:
-
otherInstant- другое мгновение для сравнения, не null - Возвращает:
- true, если это мгновение после указанного мгновения
- Исключения:
-
NullPointerException- если otherInstant равно null
isBefore
public boolean isBefore(Instant otherInstant)
Сравнение основано на позиции мгновений на временной шкале.
- Параметры:
-
otherInstant- другое мгновение для сравнения, не null - Возвращает:
- true, если это мгновение перед указанным мгновением
- Исключения:
-
NullPointerException- если otherInstant равно null
equals
public boolean equals(Object other)
Сравнение основано на позиции мгновений на временной шкале.
- Overrides:
-
equalsв классеObject - Параметры:
-
other- другое мгновение, null возвращает false - Возвращает:
- true, если другое мгновение равно этому
- См. также:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Возвращает:
- подходящий хэш-код
- См. также:
toString
public String toString()
Используемый формат совпадает с DateTimeFormatter.ISO_INSTANT.
- Overrides:
-
toStringв классеObject - Возвращает:
- представление ISO-8601 этого мгновения, не null
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Instant.html