Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface TemporalUnit
Измерение времени основывается на модулях, таких как годы, месяцы, дни, часы, минуты и секунды. Реализации этого интерфейса представляют те модули.
Экземпляр этого интерфейса представляет модуль непосредственно, а не количество модуля. См. Period
для class, который представляет количество с точки зрения общих модулей.
Обычно используемые модули определяются в ChronoUnit
. Дальнейшие модули предоставляются в IsoFields
. Модули могут также быть записаны кодом программы, реализовывая этот интерфейс.
Работы модуля, используя двойной диспетчеризируют. Клиентский код вызывает методы на разовом датой как LocalDateTime
которые проверяют, является ли модуль a ChronoUnit
. Если это, то разовое датой должно обработать это. Иначе, вызов метода повторно диспетчеризируется соответствующему методу в этом интерфейсе.
Модификатор и Тип | Метод и Описание |
---|---|
<R extends Temporal> |
addTo(R temporal, long amount)
Возвращает копию указанного временного объекта с добавленным установленным периодом.
|
long |
between(Temporal temporal1, Temporal temporal2)
Вычисляет количество времени между двумя временными объектами.
|
Продолжительность |
getDuration()
Получает продолжительность этого модуля, который может быть оценкой.
|
Строка |
getName()
Получает описательное имя для модуля.
|
boolean |
isDurationEstimated()
Проверки, если продолжительность модуля является оценкой.
|
default boolean |
isSupportedBy(Temporal temporal)
Проверки, если этот модуль поддерживается указанным временным объектом.
|
Строка |
toString()
Выводит этот модуль как a
String использование имени. |
String getName()
Это должно быть во множественном числе и верхнем первом Camel-регистре, таком как 'Дни' или 'Минуты'.
Duration getDuration()
Все модули возвращают продолжительность, измеренную в стандартные наносекунды от этого метода. Продолжительность будет положительной и ненулевой. Например, у часа есть продолжительность 60 * 60 * 1,000,000,000ns
.
Некоторые модули могут возвратить точную продолжительность, в то время как другие возвращают оценку. Например, у дней есть предполагаемая продолжительность из-за возможности изменений летнего времени. Чтобы определить, является ли продолжительность оценкой, использовать isDurationEstimated()
.
boolean isDurationEstimated()
У всех модулей есть продолжительность, однако продолжительность не всегда точна. Например, у дней есть предполагаемая продолжительность из-за возможности изменений летнего времени. Этот метод возвращает true, если продолжительность является оценкой и ложью, если это точно. Отметьте, что точный/предполагаемый игнорирует секунды прыжка.
default boolean isSupportedBy(Temporal temporal)
Это проверяет, что разовая датой реализация может добавить/вычесть этот модуль. Это может использоваться, чтобы избежать выдавать исключение.
Эта реализация по умолчанию получает использование значения Temporal.plus(long, TemporalUnit)
.
temporal
- временный объект проверить, не нуль<R extends Temporal> R addTo(R temporal, long amount)
Добавленный период является кратным числом этого модуля. Например, этот метод мог использоваться, чтобы добавить "3 дня" к дате, вызывая этот метод на представлении экземпляра "дни", передавая дату и период "3". Период, который будет добавлен, может быть отрицательным, который эквивалентен вычитанию.
Есть два эквивалентных способа использовать этот метод. Первое должно вызвать этот метод непосредственно. Второе должно использовать Temporal.plus(long, TemporalUnit)
:
// these two lines are equivalent, but the second approach is recommended temporal = thisUnit.addTo(temporal); temporal = temporal.plus(thisUnit);Рекомендуется использовать второй подход,
plus(TemporalUnit)
, поскольку это является намного более четким, чтобы читать в коде. Реализации должны выполнить любые запросы или вычисления, используя модули, доступные в ChronoUnit
или поля, доступные в ChronoField
. Если модуль не поддерживается UnsupportedTemporalTypeException
должен быть брошен.
Реализации не должны изменить указанный временный объект. Вместо этого должна быть возвращена скорректированная копия оригинала. Это обеспечивает эквивалентное, безопасное поведение для неизменных и изменчивых реализаций.
R
- тип Временного объектаtemporal
- временный объект скорректировать, не нульamount
- количество этого модуля, чтобы добавить, положительный или отрицательныйDateTimeException
- если период не может быть добавленUnsupportedTemporalTypeException
- если модуль не поддерживается временнымlong between(Temporal temporal1, Temporal temporal2)
Это вычисляет количество с точки зрения этого модуля. Запуск и конечные точки предоставляются как временные объекты и должны иметь тот же самый тип. Результат будет отрицателен, если конец будет перед запуском. Например, количество в часах между двумя временными объектами может быть вычислено, используя HOURS.between(startTime, endTime)
.
Вычисление возвращает целое число, представляя число полных модулей между двумя temporals. Например, количество в часах между временами 11:30 и 13:29 только будет одним часом, поскольку это - одна минута за исключением двух часов.
Есть два эквивалентных способа использовать этот метод. Первое должно вызвать этот метод непосредственно. Второе должно использовать Temporal.periodUntil(Temporal, TemporalUnit)
:
// these two lines are equivalent between = thisUnit.between(start, end); between = start.periodUntil(end, thisUnit);Выбор должен быть сделан основанный, которого делает код более читаемым.
Например, этот метод позволяет числу дней между двумя датами быть вычисленным:
long daysBetween = DAYS.between(start, end); // or alternatively long daysBetween = start.periodUntil(end, DAYS);
Реализации должны выполнить любые запросы или вычисления, используя модули, доступные в ChronoUnit
или поля, доступные в ChronoField
. Если модуль не поддерживается UnsupportedTemporalTypeException
должен быть брошен. Реализации не должны изменить указанные временные объекты.
temporal1
- основной временный объект, не нульtemporal2
- другой временный объект, не нульDateTimeException
- если количество не может быть вычисленоUnsupportedTemporalTypeException
- если модуль не поддерживается временнымArithmeticException
- если числовое переполнение происходит
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92