Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface TemporalField
Дата и время выражается, используя поля, которые делят временную шкалу во что-то значимое для людей. Реализации этого интерфейса представляют те поля.
Обычно используемые модули определяются в ChronoField
. Дальнейшие поля предоставляются в IsoFields
, WeekFields
и JulianFields
. Поля могут также быть записаны кодом программы, реализовывая этот интерфейс.
Полевые работы, используя двойной диспетчеризируют. Клиентский код вызывает методы на разовом датой как LocalDateTime
которые проверяют, является ли поле a ChronoField
. Если это, то разовое датой должно обработать это. Иначе, вызов метода повторно диспетчеризируется соответствующему методу в этом интерфейсе.
Serializable
где только возможно. Перечисление как эффективный выбор реализации.Модификатор и Тип | Метод и Описание |
---|---|
<R extends Temporal> |
adjustInto(R temporal, long newValue)
Возвращает копию указанного временного объекта со значением этого полевого набора.
|
TemporalUnit |
getBaseUnit()
Получает модуль, в котором измеряется поле.
|
default String |
getDisplayName(Locale locale)
Получает имя дисплея для поля в требуемой локали.
|
long |
getFrom(TemporalAccessor temporal)
Получает значение этого поля от указанного временного объекта.
|
Строка |
getName()
Получает описательное имя для поля.
|
TemporalUnit |
getRangeUnit()
Получает диапазон, которым связывается поле.
|
default boolean |
isDateBased()
Проверки, если это поле представляет компонент даты.
|
boolean |
isSupportedBy(TemporalAccessor temporal)
Проверки, если это поле поддерживается временным объектом.
|
default boolean |
isTimeBased()
Проверки, если это поле представляет компонент времени.
|
ValueRange |
range()
Получает диапазон допустимых значений для поля.
|
ValueRange |
rangeRefinedBy(TemporalAccessor temporal)
Получите диапазон допустимых значений для этого поля, используя временный объект уточнить результат.
|
default Map<TemporalField,Long> |
resolve(TemporalAccessor temporal, long value, ResolverStyle resolverStyle)
Решения это поле, чтобы обеспечить более простую альтернативу.
|
String getName()
Должный быть формата 'BaseOfRange', таким как 'MonthOfYear', если у поля нет диапазона FOREVER
, когда только основная единица упоминается, такие как 'Год' или 'Эра'.
default String getDisplayName(Locale locale)
Если нет никакого имени дисплея для локали значения getName
возвращается.
locale
- локаль, чтобы использовать, не нульgetName
, не нульTemporalUnit getBaseUnit()
Модуль поля является периодом, который изменяется в пределах диапазона. Например, в поле 'MonthOfYear', модулем являются 'Месяцы'. См. также getRangeUnit()
.
TemporalUnit getRangeUnit()
Диапазон поля является периодом, в пределах которого изменяется поле. Например, в поле 'MonthOfYear', диапазоном являются 'Годы'. См. также getBaseUnit()
.
Диапазон никогда не является нулем. Например, поле 'Year' является сокращением для 'YearOfForever'. У этого поэтому есть модуль 'Лет' и диапазон 'Навсегда'.
ValueRange range()
Все поля могут быть выражены как a long
целое число. Этот метод возвращает объект, который описывает допустимый диапазон для того значения. Этот метод обычно только применим к календарной системе ISO 8601.
Отметьте, что результат только описывает минимальные и максимальные допустимые значения, и важно не читать слишком много в них. Например, могли быть значения в пределах диапазона, которые недопустимы для поля.
default boolean isDateBased()
Поле основано на дате, если оно может быть получено из EPOCH_DAY
.
Реализация по умолчанию должна возвратить false.
default boolean isTimeBased()
Поле основано на времени, если оно может быть получено из NANO_OF_DAY
.
Реализация по умолчанию должна возвратить false.
boolean isSupportedBy(TemporalAccessor temporal)
Это определяет, поддерживает ли временное средство доступа это поле. Если это возвращает false, временное не может быть запрошено для этого поля.
Есть два эквивалентных способа использовать этот метод. Первое должно вызвать этот метод непосредственно. Второе должно использовать TemporalAccessor.isSupported(TemporalField)
:
// these two lines are equivalent, but the second approach is recommended temporal = thisField.isSupportedBy(temporal); temporal = temporal.isSupported(thisField);Рекомендуется использовать второй подход,
isSupported(TemporalField)
, поскольку это является намного более четким, чтобы читать в коде. Реализации должны определить, поддерживаются ли они, используя поля, доступные в ChronoField
.
temporal
- временный объект запросить, не нульValueRange rangeRefinedBy(TemporalAccessor temporal)
Это использует временный объект найти диапазон допустимых значений для поля. Это подобно range()
, однако этот метод уточняет результат, используя временное. Например, если поле DAY_OF_MONTH
range
метод не точен, поскольку есть четыре возможных длины месяца, 28, 29, 30 и 31 день. Используя этот метод с датой позволяет диапазону быть точным, возвращая только одну из тех четырех опций.
Есть два эквивалентных способа использовать этот метод. Первое должно вызвать этот метод непосредственно. Второе должно использовать TemporalAccessor.range(TemporalField)
:
// these two lines are equivalent, but the second approach is recommended temporal = thisField.rangeRefinedBy(temporal); temporal = temporal.range(thisField);Рекомендуется использовать второй подход,
range(TemporalField)
, поскольку это является намного более четким, чтобы читать в коде. Реализации должны выполнить любые запросы или вычисления, используя поля, доступные в ChronoField
. Если поле не поддерживается UnsupportedTemporalTypeException
должен быть брошен.
temporal
- временный объект, используемый, чтобы уточнить результат, не нульDateTimeException
- если диапазон для поля не может быть полученUnsupportedTemporalTypeException
- если поле не поддерживается временнымlong getFrom(TemporalAccessor temporal)
Это запрашивает временный объект для значения этого поля.
Есть два эквивалентных способа использовать этот метод. Первое должно вызвать этот метод непосредственно. Второе должно использовать TemporalAccessor.getLong(TemporalField)
(или TemporalAccessor.get(TemporalField)
):
// these two lines are equivalent, but the second approach is recommended temporal = thisField.getFrom(temporal); temporal = temporal.getLong(thisField);Рекомендуется использовать второй подход,
getLong(TemporalField)
, поскольку это является намного более четким, чтобы читать в коде. Реализации должны выполнить любые запросы или вычисления, используя поля, доступные в ChronoField
. Если поле не поддерживается UnsupportedTemporalTypeException
должен быть брошен.
temporal
- временный объект запросить, не нульDateTimeException
- если значение для поля не может быть полученоUnsupportedTemporalTypeException
- если поле не поддерживается временнымArithmeticException
- если числовое переполнение происходит<R extends Temporal> R adjustInto(R temporal, long newValue)
Это возвращает новое временное основанное на объектах на указанном со значением для этого измененного поля. Например, на a LocalDate
, это могло использоваться, чтобы установить год, месяц или день-месячного. У возвращенного объекта есть тот же самый заметный тип как указанный объект.
В некоторых случаях изменение поля не полностью определяется. Например, если целевой объект является датой, представляющей 31-ого января, то изменение месяца до февраля было бы неясно. В случаях как это реализация ответственна за разрешение результата. Обычно это выберет предыдущую допустимую дату, которая была бы прошлым допустимым днем февраля в этом примере.
Есть два эквивалентных способа использовать этот метод. Первое должно вызвать этот метод непосредственно. Второе должно использовать Temporal.with(TemporalField, long)
:
// these two lines are equivalent, but the second approach is recommended temporal = thisField.adjustInto(temporal); temporal = temporal.with(thisField);Рекомендуется использовать второй подход,
with(TemporalField)
, поскольку это является намного более четким, чтобы читать в коде. Реализации должны выполнить любые запросы или вычисления, используя поля, доступные в ChronoField
. Если поле не поддерживается UnsupportedTemporalTypeException
должен быть брошен.
Реализации не должны изменить указанный временный объект. Вместо этого должна быть возвращена скорректированная копия оригинала. Это обеспечивает эквивалентное, безопасное поведение для неизменных и изменчивых реализаций.
R
- тип Временного объектаtemporal
- временный объект скорректировать, не нульnewValue
- новое значение поляDateTimeException
- если поле не может быть установленоUnsupportedTemporalTypeException
- если поле не поддерживается временнымArithmeticException
- если числовое переполнение происходитdefault Map<TemporalField,Long> resolve(TemporalAccessor temporal, long value, ResolverStyle resolverStyle)
Этот метод вызывается во время фазы решения парсинга. Это разрабатывается, чтобы позволить приложению определенные поля, которые будут упрощены в более стандартные поля, такие как те на ChronoField
.
Метод будет только вызван, если указанное временное будет поддерживать это поле. Значение этого поля обеспечивается.
Временное должно быть запрошено, используя методы TemporalAccessor
, не использование getFrom
, isSupportedBy
или rangeRefinedBy
. Прежде, чем запросить любое поле, реализации должны гарантировать, что оно поддерживается, поскольку исключения этого типа негативно влияли бы на вычисление проанализированного результата.
Если это поле может решить, оно должно возвратить карту, если не оно должно возвратить нуль. Возвращенная карта содержит изменения, которые будут сделаны к временному, выражены как пары значения поля. Если значение для поля является нулем, поле должно быть удалено из временного. Нулевой ключ не должен быть добавлен к карте результата.
Если результатом будет ненуль, то это поле будет удалено из временного. Это поле не должно быть добавлено к карте результата.
ResolverStyle
должен использоваться реализациями, чтобы определить, как выполнить решение.
Реализация по умолчанию должна возвратить нуль.
temporal
- временное, чтобы разрешить, не нульvalue
- значение этого поляresolverStyle
- требуемый тип решения, не нульDateTimeException
- разрешая результаты по ошибке. Это не должно быть брошено, запрашивая поле на временном без первой проверки, если она поддерживаетсяArithmeticException
- если числовое переполнение происходит
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92