Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class Instant extends Object implements Temporal, TemporalAdjuster, Comparable<Instant>, Serializable
Этот class моделирует единственную мгновенную точку на временной шкале. Это могло бы использоваться, чтобы записать метки времени события в приложении.
Для практичности момент сохранен некоторыми ограничениями. Измеримая временная шкала ограничивается числу секунд, которые могут быть сохранены в a long
. Это больше чем ток оцененный возраст вселенной. Момент сохранен к разрешению наносекунды.
Диапазон момента требует хранения числа, больше чем a long
. Чтобы достигнуть этого, class хранит a long
представление секунд эпохи и int
представление наносекунды-секундного, которая всегда будет между 0 и 999 999 999. Секунды эпохи измеряются от стандартной эпохи Java 1970-01-01T00:00:00Z
где у моментов после эпохи есть положительные значения, и у более ранних моментов есть отрицательные величины. И для частей с секундой эпохи и для частей наносекунды, большее значение является всегда позже временной шкалой чем меньшее значение.
Продолжительность солнечного дня является стандартным способом, которым люди измеряют время. Это было традиционно подразделено на 24 часа 60 минут 60 секунд, формируя 86400 вторых дней.
Современное хронометрирование основано на атомарных часах, которые точно определяют SI, второй относительно переходов атома Цезия. Длина второго SI была определена, чтобы быть очень близко к 86400-ой части дня.
К сожалению, поскольку Земля поворачивает продолжительность дня, изменяется. Кроме того, в течение долгого времени средняя продолжительность дня становится более длительной, поскольку Земля замедляется. В результате продолжительность солнечного дня в 2012 немного более длительна чем 86400 секунд SI. Фактическая продолжительность любого данного дня и количества, которым замедляется Земля, не предсказуема и может только быть определена измерением. Масштаб времени UT1 получает точную продолжительность дня, но только доступен некоторое время после того, как день завершился.
Масштаб времени UTC является стандартным подходом, чтобы укутаться все дополнительные части секунды от UT1 в целые секунды, известные как секунды прыжка. С секундой прыжка может быть добавлен или удален в зависимости от вращательных изменений Земли. Также, UTC разрешает дню иметь 86399 секунд SI или 86401 секунду SI, где необходимый, чтобы явиться вовремя выровненный с Sun.
Современный масштаб времени UTC был представлен в 1972, представляя понятие целых секунд прыжка. Между 1958 и 1972, определение UTC было сложно с незначительными подвторыми прыжками и изменениями к продолжительности отвлеченной секунды. С 2012 обсуждения должны в стадии реализации изменить определение UTC снова с потенциалом, чтобы удалить секунды прыжка или представить другие изменения.
Учитывая сложность точного хронометрирования, описанного выше, этот API Java определяет свой собственный масштаб времени, Масштаб времени Java.
Масштаб времени Java делится каждый календарный день точно на 86400 подразделений, известных как секунды. Эти секунды могут отличаться от второго SI. Это близко соответствует фактическую международную гражданскую шкалу времени, определение которой время от времени изменяется.
У Масштаба времени Java есть немного отличающиеся определения для различных сегментов временной шкалы, каждый основанный на согласии международная шкала времени, которая используется в качестве основания в течение гражданского времени. Всякий раз, когда всемирно согласованная шкала времени изменяется или заменяется, новый сегмент Масштаба времени Java должен быть определен для нее. Каждый сегмент должен удовлетворить эти требования:
Есть в настоящий момент, с 2013, двух сегментов в масштабе времени Java.
Для сегмента от 03.11.1972 (точная граница, обсужденная ниже) до следующего приказа, согласие, международной шкалой времени является UTC (с секундами прыжка). В этом сегменте Масштаб времени Java идентичен
Для сегмента до 03.11.1972, уходя корнями произвольно далеко, согласие международная шкала времени определяется, чтобы быть UT1, применял proleptically, который эквивалентен (среднему) солнечному времени на главном меридиане (Гринвич). В этом сегменте Масштаб времени Java идентичен согласию международная шкала времени. Точная граница между этими двумя сегментами является моментом где UT1 = UTC между 1972-11-03T00:00 и 1972-11-04T12:00.
Реализации масштаба времени Java, используя API JSR-310 не обязаны обеспечивать любые часы, которые являются подвторые точный, или это прогрессирует монотонно или гладко. Реализации поэтому не требуются фактически выполнить SL UTC, убивал или иначе знать о секундах прыжка. JSR-310 действительно, однако, требует, чтобы реализации задокументировали подход, который они используют, определяя часы, представляющие текущий момент. См. Clock
для деталей о доступных часах.
Масштаб времени Java используется для всех разовых датой классов. Это включает Instant
, LocalDate
, LocalTime
, OffsetDateTime
, ZonedDateTime
и Duration
.
Модификатор и Тип | Поле и Описание |
---|---|
static Instant |
ЭПОХА
Постоянный в течение момента эпохи 1970-01-01T00:00:00Z.
|
static Instant |
МАКСИМАЛЬНЫЙ
Максимум поддерживается
Instant , '1000000000-12-31T23:59:59.999999999Z'. |
static Instant |
МИН
Минимум поддерживается
Instant , '-1000000000-01-01T00:00Z'. |
Модификатор и Тип | Метод и Описание |
---|---|
Временный |
adjustInto(Temporal temporal)
Корректирует указанный временный объект иметь сейчас же.
|
OffsetDateTime |
atOffset(ZoneOffset offset)
Объединяется сейчас же со смещением, чтобы создать
OffsetDateTime . |
ZonedDateTime |
atZone(ZoneId zone)
Объединяется сейчас же с часовым поясом, чтобы создать a
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)
Получает значение указанного поля от сейчас же как a
long . |
int |
getNano()
Получает число наносекунд, позже вдоль временной шкалы, от запуска второго.
|
int |
hashCode()
Возвращает хэш-код для сейчас же.
|
boolean |
isAfter(Instant otherInstant)
Проверки, если сейчас же после указанного момента.
|
boolean |
isBefore(Instant otherInstant)
Проверки, если сейчас же перед указанным моментом.
|
boolean |
isSupported(TemporalField field)
Проверки, если указанное поле поддерживается.
|
Момент |
minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию сейчас же с указанным вычтенным количеством.
|
Момент |
minus(TemporalAmount amountToSubtract)
Возвращает копию сейчас же с указанным вычтенным количеством.
|
Момент |
minusMillis(long millisToSubtract)
Возвращает копию сейчас же с указанной продолжительностью в вычтенных миллисекундах.
|
Момент |
minusNanos(long nanosToSubtract)
Возвращает копию сейчас же с указанной продолжительностью в вычтенных наносекундах.
|
Момент |
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:00 . |
long |
periodUntil(Temporal endInstant, TemporalUnit unit)
Вычисляет количество времени до другого момента с точки зрения указанного модуля.
|
Момент |
plus(long amountToAdd, TemporalUnit unit)
Возвращает копию сейчас же с указанным добавленным количеством.
|
Момент |
plus(TemporalAmount amountToAdd)
Возвращает копию сейчас же с указанным добавленным количеством.
|
Момент |
plusMillis(long millisToAdd)
Возвращает копию сейчас же с указанной продолжительностью в добавленных миллисекундах.
|
Момент |
plusNanos(long nanosToAdd)
Возвращает копию сейчас же с указанной продолжительностью в добавленных наносекундах.
|
Момент |
plusSeconds(long secondsToAdd)
Возвращает копию сейчас же с указанной продолжительностью в добавленных секундах.
|
<R> R |
query(TemporalQuery<R> query)
Запросы, сейчас же используя указанный запрос.
|
ValueRange |
range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.
|
long |
toEpochMilli()
Преобразовывает сейчас же в число миллисекунд от эпохи 1970-01-01T00:00:00Z.
|
Строка |
toString()
Строковое представление сейчас же использования представление ISO 8601.
|
Момент |
truncatedTo(TemporalUnit unit)
Возвращает копию этого
Instant усеченный к указанному модулю. |
Момент |
with(TemporalAdjuster adjuster)
Возвращает скорректированную копию сейчас же.
|
Момент |
with(TemporalField field, long newValue)
Возвращает копию сейчас же с указанным полевым набором к новому значению.
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
dayOfWeekInMonth, firstDayOfMonth, firstDayOfNextMonth, firstDayOfNextYear, firstDayOfYear, firstInMonth, lastDayOfMonth, lastDayOfYear, lastInMonth, next, nextOrSame, ofDateAdjuster, previous, previousOrSame
public static final Instant EPOCH
public static final Instant MIN
Instant
, '-1000000000-01-01T00:00Z'. Это могло использоваться приложением в качестве "далекого прошлого" момента. Это на один год ранее чем минимум LocalDateTime
. Это обеспечивает достаточные значения, чтобы обработать диапазон ZoneOffset
которые влияют на момент в дополнение к разовой датой локальной переменной. Значение также выбирается так, что, значение года вписывается int
.
public static final Instant MAX
Instant
, '1000000000-12-31T23:59:59.999999999Z'. Это могло использоваться приложением в качестве "далекого будущего" момента. Это на один год позже чем максимум LocalDateTime
. Это обеспечивает достаточные значения, чтобы обработать диапазон ZoneOffset
которые влияют на момент в дополнение к разовой датой локальной переменной. Значение также выбирается так, что, значение года вписывается int
.
public static Instant now()
Это запросит system UTC clock
получить текущий момент.
Используя этот метод предотвратит возможность использовать альтернативный источник времени для того, чтобы протестировать, потому что часы эффективно трудно кодируются.
public static Instant now(Clock clock)
Это запросит указанные часы, чтобы получить текущее время.
Используя этот метод позволяет использование альтернативных часов для того, чтобы протестировать. Альтернативные часы могут быть представлены, используя dependency injection
.
clock
- часы, чтобы использовать, не нульpublic static Instant ofEpochSecond(long epochSecond)
Instant
использование секунд от эпохи 1970-01-01T00:00:00Z. Поле наносекунды обнуляется.
epochSecond
- число секунд от 1970-01-01T00:00:00ZDateTimeException
- если момент превышает максимальный или минимальный момент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:00ZnanoAdjustment
- корректировка наносекунды числа секунд, положительных или отрицательныхDateTimeException
- если момент превышает максимальный или минимальный моментArithmeticException
- если числовое переполнение происходитpublic static Instant ofEpochMilli(long epochMilli)
Instant
использование миллисекунд от эпохи 1970-01-01T00:00:00Z. Секунды и наносекунды извлекаются из указанных миллисекунд.
epochMilli
- число миллисекунд от 1970-01-01T00:00:00ZDateTimeException
- если момент превышает максимальный или минимальный моментpublic static Instant from(TemporalAccessor temporal)
Instant
от временного объекта. Это получает момент, основанный на указанном временном. A TemporalAccessor
представляет произвольный набор даты и информации времени, из которой эта фабрика преобразовывает в экземпляр Instant
.
Преобразование извлекает INSTANT_SECONDS
и NANO_OF_SECOND
поля.
Этот метод соответствует подпись функционального интерфейса TemporalQuery
разрешение этого использоваться в качестве запроса через ссылку метода, Instant::from
.
temporal
- временный объект преобразовать, не нульDateTimeException
- если неспособный преобразовать в Instant
public static Instant parse(CharSequence text)
Instant
от текстовой строки такой как 2007-12-03T10:15:30:00
. Строка должна представить допустимый момент в UTC и анализируется, используя DateTimeFormatter.ISO_INSTANT
.
text
- текст, чтобы проанализировать, не нульDateTimeParseException
- если текст не может быть проанализированpublic boolean isSupported(TemporalField field)
Это проверяет, может ли сейчас же быть запрошен для указанного поля. Если ложь, то вызов range
и get
методы выдадут исключение.
Если поле является a ChronoField
тогда запрос реализуется здесь. Поддерживаемые поля:
NANO_OF_SECOND
MICRO_OF_SECOND
MILLI_OF_SECOND
INSTANT_SECONDS
ChronoField
экземпляры возвратят false. Если поле не является a ChronoField
, тогда результат этого метода получается, вызывая TemporalField.isSupportedBy(TemporalAccessor)
передача this
как параметр. Поддерживается ли поле, определяется полем.
isSupported
в интерфейсе TemporalAccessor
field
- поле, чтобы проверить, обнулите, возвращает falsepublic ValueRange range(TemporalField field)
Объект диапазона выражает минимальные и максимальные допустимые значения для поля. Сейчас же используется, чтобы улучшить точность возвращенного диапазона. Если не возможно возвратить диапазон, потому что поле не поддерживается или по некоторой другой причине, исключение выдается.
Если поле является a ChronoField
тогда запрос реализуется здесь. supported fields
возвратит соответствующие экземпляры диапазона. Все другой ChronoField
экземпляры бросят UnsupportedTemporalTypeException
.
Если поле не является a ChronoField
, тогда результат этого метода получается, вызывая TemporalField.rangeRefinedBy(TemporalAccessor)
передача this
как параметр. Может ли диапазон быть получен, определяется полем.
range
в интерфейсе TemporalAccessor
field
- поле, чтобы запросить диапазон для, не нульDateTimeException
- если диапазон для поля не может быть полученUnsupportedTemporalTypeException
- если поле не поддерживаетсяpublic int get(TemporalField field)
int
. Это запрашивает сейчас же для значения для указанного поля. Возвращенное значение всегда будет в пределах допустимого диапазона значений для поля. Если не возможно возвратить значение, потому что поле не поддерживается или по некоторой другой причине, исключение выдается.
Если поле является a ChronoField
тогда запрос реализуется здесь. supported fields
возвратит допустимые значения, основанные на этом разовом датой, кроме INSTANT_SECONDS
который является слишком большим, чтобы вписаться int
и броски a DateTimeException
. Все другой ChronoField
экземпляры бросят UnsupportedTemporalTypeException
.
Если поле не является a ChronoField
, тогда результат этого метода получается, вызывая TemporalField.getFrom(TemporalAccessor)
передача this
как параметр. Может ли значение быть получено, и что представляет значение, определяется полем.
get
в интерфейсе TemporalAccessor
field
- поле, чтобы получить, не нульDateTimeException
- если значение для поля не может быть получено, или значение вне диапазона допустимых значений для поляUnsupportedTemporalTypeException
- если поле не поддерживается, или диапазон значений превышает int
ArithmeticException
- если числовое переполнение происходитpublic long getLong(TemporalField field)
long
. Это запрашивает сейчас же для значения для указанного поля. Если не возможно возвратить значение, потому что поле не поддерживается или по некоторой другой причине, исключение выдается.
Если поле является a ChronoField
тогда запрос реализуется здесь. supported fields
возвратит допустимые значения, основанные на этом разовом датой. Все другой ChronoField
экземпляры бросят UnsupportedTemporalTypeException
.
Если поле не является a ChronoField
, тогда результат этого метода получается, вызывая TemporalField.getFrom(TemporalAccessor)
передача this
как параметр. Может ли значение быть получено, и что представляет значение, определяется полем.
getLong
в интерфейсе TemporalAccessor
field
- поле, чтобы получить, не нульDateTimeException
- если значение для поля не может быть полученоUnsupportedTemporalTypeException
- если поле не поддерживаетсяArithmeticException
- если числовое переполнение происходитpublic long getEpochSecond()
Второе количество эпохи является простым количеством постепенного увеличения секунд, где второй 0 1970-01-01T00:00:00Z. Часть наносекунды дня возвращается getNanosOfSecond
.
public int getNano()
Значение наносекунды-секундного измеряет общее количество наносекунд от второго, возвращенного getEpochSecond
.
public Instant with(TemporalAdjuster adjuster)
Это возвращается Instant
, основанный на этом, со скорректированным моментом. Корректировка имеет место, используя указанный объект стратегии регулятора. Считайте документацию регулятора, чтобы понять, какая корректировка будет внесена.
Результат этого метода получается, вызывая TemporalAdjuster.adjustInto(Temporal)
метод на указанной передаче регулятора this
как параметр.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
with
в интерфейсе Temporal
adjuster
- регулятор, чтобы использовать, не нульInstant
основанный на this
с внесенной корректировкой, не нульDateTimeException
- если корректировка не может быть внесенаArithmeticException
- если числовое переполнение происходитpublic Instant with(TemporalField field, long newValue)
Это возвращается Instant
, основанный на этом, со значением для указанного поля изменился. Если не возможно установить значение, потому что поле не поддерживается или по некоторой другой причине, исключение выдается.
Если поле является a ChronoField
тогда корректировка реализуется здесь. Поддерживаемые поля ведут себя следующим образом:
NANO_OF_SECOND
- Возвраты Instant
с указанным nano-of-second. С секундой эпохи будет неизменен. MICRO_OF_SECOND
- Возвраты Instant
с nano-of-second, замененным указанным, "микро из вторых", умноженных на 1 000. С секундой эпохи будет неизменен. MILLI_OF_SECOND
- Возвраты Instant
с nano-of-second, замененным указанным milli-of-second, умножился на 1 000 000. С секундой эпохи будет неизменен. INSTANT_SECONDS
- Возвраты Instant
с указанным с секундой эпохи. nano-of-second будет неизменен. Во всех случаях, если новое значение вне допустимого диапазона значений для поля тогда a DateTimeException
будет брошен.
Все другой ChronoField
экземпляры бросят UnsupportedTemporalTypeException
.
Если поле не является a ChronoField
, тогда результат этого метода получается, вызывая TemporalField.adjustInto(Temporal, long)
передача this
как параметр. В этом случае поле определяет, ли и как скорректировать момент.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
with
в интерфейсе Temporal
field
- поле, чтобы установить в результате, не нулеnewValue
- новое значение поля в результатеInstant
основанный на this
с указанным полевым набором, не нулемDateTimeException
- если поле не может быть установленоUnsupportedTemporalTypeException
- если поле не поддерживаетсяArithmeticException
- если числовое переполнение происходитpublic Instant truncatedTo(TemporalUnit unit)
Instant
усеченный к указанному модулю. Усечение момента возвращает копию оригинала с полями, меньшими чем указанный обнуленный модуль. Поля вычисляются на основе использования смещения UTC как замечено в toString
. Например, усечение с MINUTES
модуль округлит в меньшую сторону до самой близкой минуты, обнуляя секунды и наносекунды.
У модуля должна быть продолжительность, которая делится на продолжительность стандартного дня без остатка. Это включает все предоставленные единицы измерения времени на ChronoUnit
и DAYS
. Другие модули выдают исключение.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
unit
- модуль, чтобы усечь к, не нульInstant
основанный на сейчас же с усеченным временем, не нулевойDateTimeException
- если модуль недопустим для усеченияUnsupportedTemporalTypeException
- если модуль не поддерживаетсяpublic Instant plus(TemporalAmount amountToAdd)
Это возвращается Instant
, основанный на этом, с указанным добавленным количеством. Количество обычно Duration
но может быть любой другой тип, реализовывая TemporalAmount
интерфейс.
Вычисление делегируется к объекту количества, вызывая TemporalAmount.addTo(Temporal)
. Реализация количества свободна реализовать дополнение всегда, это желает, однако это обычно перезванивает к plus(long, TemporalUnit)
. Консультируйтесь с документацией реализации количества, чтобы определить, может ли это быть успешно добавлено.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
plus
в интерфейсе Temporal
amountToAdd
- количество, чтобы добавить, не нульInstant
основанный на сейчас же со сделанным дополнением, не нульDateTimeException
- если дополнение не может быть сделаноArithmeticException
- если числовое переполнение происходитpublic Instant plus(long amountToAdd, TemporalUnit unit)
Это возвращается Instant
, основанный на этом, с количеством с точки зрения модуля добавил. Если не возможно добавить количество, потому что модуль не поддерживается или по некоторой другой причине, исключение выдается.
Если поле является a ChronoUnit
тогда дополнение реализуется здесь. Поддерживаемые поля ведут себя следующим образом:
NANOS
- Возвраты a Instant
с конкретным количеством добавленных наносекунд. Это эквивалентно plusNanos(long)
. MICROS
- Возвраты a Instant
с конкретным количеством добавленных микросекунд. Это эквивалентно plusNanos(long)
с количеством, умноженным на 1 000. MILLIS
- Возвраты a Instant
с конкретным количеством добавленных миллисекунд. Это эквивалентно plusNanos(long)
с количеством, умноженным на 1 000 000. SECONDS
- Возвраты a Instant
с конкретным количеством добавленных секунд. Это эквивалентно plusSeconds(long)
. MINUTES
- Возвраты a Instant
с конкретным количеством добавленных минут. Это эквивалентно plusSeconds(long)
с количеством, умноженным на 60. HOURS
- Возвраты a Instant
с конкретным количеством добавленных часов. Это эквивалентно plusSeconds(long)
с количеством, умноженным на 3 600. HALF_DAYS
- Возвраты a Instant
с конкретным количеством добавленных неполных рабочих дней. Это эквивалентно plusSeconds(long)
с количеством, умноженным на 43 200 (12 часов). DAYS
- Возвраты a Instant
с конкретным количеством добавленных дней. Это эквивалентно plusSeconds(long)
с количеством, умноженным на 86 400 (24 часа). Все другой ChronoUnit
экземпляры бросят UnsupportedTemporalTypeException
.
Если поле не является a ChronoUnit
, тогда результат этого метода получается, вызывая TemporalUnit.addTo(Temporal, long)
передача this
как параметр. В этом случае модуль определяет, ли и как выполнить дополнение.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
plus
в интерфейсе Temporal
amountToAdd
- количество модуля, чтобы добавить к результату, может быть отрицательнымunit
- модуль количества, чтобы добавить, не нульInstant
основанный на сейчас же с указанным количеством добавил, не нульDateTimeException
- если дополнение не может быть сделаноUnsupportedTemporalTypeException
- если модуль не поддерживаетсяArithmeticException
- если числовое переполнение происходитpublic Instant plusSeconds(long secondsToAdd)
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
secondsToAdd
- секунды, чтобы добавить, положительный или отрицательныйInstant
основанный на сейчас же с указанными секундами добавил, не нульDateTimeException
- если результат превышает максимальный или минимальный моментArithmeticException
- если числовое переполнение происходитpublic Instant plusMillis(long millisToAdd)
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
millisToAdd
- миллисекунды, чтобы добавить, положительный или отрицательныйInstant
основанный на сейчас же с указанными миллисекундами добавил, не нульDateTimeException
- если результат превышает максимальный или минимальный моментArithmeticException
- если числовое переполнение происходитpublic Instant plusNanos(long nanosToAdd)
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
nanosToAdd
- наносекунды, чтобы добавить, положительный или отрицательныйInstant
основанный на сейчас же с указанными наносекундами добавил, не нульDateTimeException
- если результат превышает максимальный или минимальный моментArithmeticException
- если числовое переполнение происходитpublic Instant minus(TemporalAmount amountToSubtract)
Это возвращается Instant
, основанный на этом, с указанным вычтенным количеством. Количество обычно Duration
но может быть любой другой тип, реализовывая TemporalAmount
интерфейс.
Вычисление делегируется к объекту количества, вызывая TemporalAmount.subtractFrom(Temporal)
. Реализация количества свободна реализовать вычитание всегда, это желает, однако это обычно перезванивает к minus(long, TemporalUnit)
. Консультируйтесь с документацией реализации количества, чтобы определить, может ли это быть успешно вычтено.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
minus
в интерфейсе Temporal
amountToSubtract
- количество, чтобы вычесть, не нульInstant
основанный на сейчас же со сделанным вычитанием, не нульDateTimeException
- если вычитание не может быть сделаноArithmeticException
- если числовое переполнение происходитpublic Instant minus(long amountToSubtract, TemporalUnit unit)
Это возвращает a Instant
, основанный на этом, с количеством с точки зрения модуля вычитается. Если не возможно вычесть количество, потому что модуль не поддерживается или по некоторой другой причине, исключение выдается.
Этот метод эквивалентен plus(long, TemporalUnit)
с отрицаемым количеством. См., что метод для полного описания того, как дополнение, и таким образом вычитание, работают.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
minus
в интерфейсе Temporal
amountToSubtract
- количество модуля, чтобы вычесть из результата, может быть отрицательнымunit
- модуль количества, чтобы вычесть, не нульInstant
основанный на сейчас же с указанным вычтенным количеством, не нульDateTimeException
- если вычитание не может быть сделаноUnsupportedTemporalTypeException
- если модуль не поддерживаетсяArithmeticException
- если числовое переполнение происходитpublic Instant minusSeconds(long secondsToSubtract)
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
secondsToSubtract
- секунды, чтобы вычесть, положительный или отрицательныйInstant
основанный на сейчас же с указанными вычтенными секундами, не нульDateTimeException
- если результат превышает максимальный или минимальный моментArithmeticException
- если числовое переполнение происходитpublic Instant minusMillis(long millisToSubtract)
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
millisToSubtract
- миллисекунды, чтобы вычесть, положительный или отрицательныйInstant
основанный на сейчас же с указанными вычтенными миллисекундами, не нульDateTimeException
- если результат превышает максимальный или минимальный моментArithmeticException
- если числовое переполнение происходитpublic Instant minusNanos(long nanosToSubtract)
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
nanosToSubtract
- наносекунды, чтобы вычесть, положительный или отрицательныйInstant
основанный на сейчас же с указанными вычтенными наносекундами, не нульDateTimeException
- если результат превышает максимальный или минимальный моментArithmeticException
- если числовое переполнение происходитpublic <R> R query(TemporalQuery<R> query)
Это запрашивает сейчас же использование указанного объекта стратегии запроса. TemporalQuery
объект определяет логику, которая будет использоваться, чтобы получить результат. Считайте документацию запроса, чтобы понять, каков результат этого метода будет.
Результат этого метода получается, вызывая TemporalQuery.queryFrom(TemporalAccessor)
метод на указанной передаче запроса this
как параметр.
query
в интерфейсе TemporalAccessor
R
- тип результатаquery
- запрос, чтобы вызвать, не нульDateTimeException
- если неспособный запрашивать (определенный запросом)ArithmeticException
- если числовое переполнение происходит (определенный запросом)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
- целевой объект, который будет скорректирован, не нульDateTimeException
- если неспособный вносить корректировкуArithmeticException
- если числовое переполнение происходитpublic long periodUntil(Temporal endInstant, TemporalUnit unit)
Это вычисляет количество времени между два Instant
объекты с точки зрения сингла TemporalUnit
. Запуск и конечные точки this
и указанный момент. Результат будет отрицателен, если конец будет перед запуском. Вычисление возвращает целое число, представляя число полных модулей между этими двумя моментами. Temporal
переданный к этому методу должен быть Instant
. Например, количество в днях между двумя датами может быть вычислено, используя startInstant.periodUntil(endInstant, SECONDS)
.
Есть два эквивалентных способа использовать этот метод. Первое должно вызвать этот метод. Второе должно использовать TemporalUnit.between(Temporal, Temporal)
:
// these two lines are equivalent amount = start.periodUntil(end, SECONDS); amount = SECONDS.between(start, end);Выбор должен быть сделан основанный, которого делает код более читаемым.
Вычисление реализуется в этом методе для ChronoUnit
. Модули NANOS
, MICROS
, MILLIS
, SECONDS
, MINUTES
, HOURS
, HALF_DAYS
и DAYS
поддерживаются. Другой ChronoUnit
значения выдадут исключение.
Если модуль не является a ChronoUnit
, тогда результат этого метода получается, вызывая TemporalUnit.between(Temporal, Temporal)
передача this
как первый параметр и ввод, временный как второй параметр.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
periodUntil
в интерфейсе Temporal
endInstant
- дата окончания, которая должна быть Instant
, не нульunit
- модуль, чтобы измерить количество в, не нульDateTimeException
- если количество не может быть вычисленоUnsupportedTemporalTypeException
- если модуль не поддерживаетсяArithmeticException
- если числовое переполнение происходитpublic OffsetDateTime atOffset(ZoneOffset offset)
OffsetDateTime
. Это возвращается OffsetDateTime
сформированный из сейчас же при указанном смещении от UTC/Гринвича. Исключение будет выдано, если момент будет слишком большим, чтобы вписаться в разовое датой смещение.
Этот метод эквивалентен OffsetDateTime.ofInstant(this, offset)
.
offset
- смещение, чтобы объединить с, не нульDateTimeException
- если результат превышает поддерживаемый диапазонpublic ZonedDateTime atZone(ZoneId zone)
ZonedDateTime
. Это возвращается ZonedDateTime
сформированный из сейчас же в указанном часовом поясе. Исключение будет выдано, если момент будет слишком большим, чтобы вписаться в зонное разовое датой.
Этот метод эквивалентен ZonedDateTime.ofInstant(this, zone)
.
zone
- зона, чтобы объединить с, не нульDateTimeException
- если результат превышает поддерживаемый диапазонpublic long toEpochMilli()
Если сейчас же представляет точку на временной шкале слишком далеко в будущем или прошлом, чтобы поместиться в a long
миллисекунды, затем исключение выдается.
Если сейчас же будет иметь больше чем точность миллисекунды, то преобразование отбросит любую избыточную информацию о точности, как если бы количество в наносекундах подвергалось целочисленному делению на один миллион.
ArithmeticException
- если числовое переполнение происходитpublic int compareTo(Instant otherInstant)
Сравнение основано на позиции временной шкалы моментов. Это является "непротиворечивым с, равняется", как определено Comparable
.
compareTo
в интерфейсе Comparable<Instant>
otherInstant
- другой момент, чтобы сравнить с, не нульNullPointerException
- если otherInstant является нулемpublic boolean isAfter(Instant otherInstant)
Сравнение основано на позиции временной шкалы моментов.
otherInstant
- другой момент, чтобы сравнить с, не нульNullPointerException
- если otherInstant является нулемpublic boolean isBefore(Instant otherInstant)
Сравнение основано на позиции временной шкалы моментов.
otherInstant
- другой момент, чтобы сравнить с, не нульNullPointerException
- если otherInstant является нулемpublic boolean equals(Object otherInstant)
Сравнение основано на позиции временной шкалы моментов.
equals
в class Object
otherInstant
- другой момент, нуль возвращает falseObject.hashCode()
, HashMap
public int hashCode()
hashCode
в class Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public String toString()
Используемый формат является тем же самым как DateTimeFormatter.ISO_INSTANT
.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92