Spec-Zone.ru › OpenJDK 25

Интерфейс Era

Все суперинтерфейсы:
TemporalAccessor, TemporalAdjuster
Все известные реализующие классы:
HijrahEra, IsoEra, JapaneseEra, MinguoEra, ThaiBuddhistEra
public interface Era extends TemporalAccessor, TemporalAdjuster
Эра временной шкалы.

Большинство календарных систем имеют единую эпоху, разделяющую временную шкалу на две эры. Однако в некоторых календарных системах предусмотрено несколько эр, например по одной для правления каждого правителя. Во всех случаях эра концептуально является крупнейшим делением временной шкалы. Каждая хронология определяет известные ей эры и Chronology.eras для получения допустимых эр.

Например, тайская буддийская календарная система разделяет время на две эры, до и после одной даты. В отличие от неё, японская календарная система предусматривает отдельную эру для правления каждого императора.

Экземпляры Era можно сравнивать с помощью оператора ==.

Требования к реализации:
Этот интерфейс следует реализовывать с осторожностью, чтобы обеспечить корректную работу других классов. Все реализации должны быть одиночными экземплярами — окончательными, неизменяемыми и потокобезопасными. По возможности рекомендуется использовать перечисление.
Начиная с версии:
1.8

Краткое описание методов

Модификатор и тип Метод Описание
default Temporal adjustInto(Temporal temporal)
Изменяет указанный объект временной шкалы так, чтобы его эра совпадала с эрой этого объекта.
default int get(TemporalField field)
Получает значение указанного поля для этой эры в виде int.
default String getDisplayName(TextStyle style, Locale locale)
Получает текстовое представление этой эры.
default long getLong(TemporalField field)
Получает значение указанного поля для этой эры в виде long.
int getValue()
Получает числовое значение, связанное с эрой согласно определению хронологии.
default boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
default <R> R query(TemporalQuery<R> query)
Выполняет запрос к этой эре с помощью указанного запроса.
default ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.

Подробное описание методов

getValue

int getValue()
Получает числовое значение, связанное с эрой согласно определению хронологии. Каждая хронология определяет предустановленные эры и методы для получения списка эр этой хронологии.

Каждому полю, включая эры, соответствует числовое значение. Значение числа для эры определяется хронологией согласно следующим принципам:

  • Эра, действовавшая на момент эпохи 1970-01-01 (ISO), имеет значение 1.
  • Более поздние эры имеют последовательно возрастающие значения.
  • Более ранние эры имеют последовательно убывающие значения, которые могут быть отрицательными.
Возвращает:
числовое значение эры

isSupported

default boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.

Проверяет, можно ли запросить у этой эры значение указанного поля. Если результат отрицательный, вызовы методов range и get приведут к выбросу исключения.

Если поле является ChronoField, запрос обрабатывается здесь. Для поля ERA возвращается true. Для всех остальных экземпляров ChronoField возвращается false.

Если поле не является ChronoField, результат этого метода получается вызовом TemporalField.isSupportedBy(TemporalAccessor) с аргументом this. Поддержка поля определяется самим полем.

Определён в:
isSupported в интерфейсе TemporalAccessor
Параметры:
field - поле для проверки; null возвращает false
Возвращает:
true, если это поле поддерживается для данной эры; в противном случае false

range

default ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.

Объект диапазона задаёт минимальное и максимальное допустимые значения поля. Эта эра используется для повышения точности возвращаемого диапазона. Если вернуть диапазон невозможно, поскольку поле не поддерживается или по другой причине, выбрасывается исключение.

Если поле является ChronoField, запрос обрабатывается здесь. Для поля ERA возвращается диапазон. Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.

Если поле не является ChronoField, результат этого метода получается вызовом TemporalField.rangeRefinedBy(TemporalAccessor) с аргументом this. Возможность получить диапазон определяется самим полем.

Реализация по умолчанию должна возвращать для ERA диапазон от нуля до единицы, подходящий для календарных систем с двумя эрами, таких как ISO.

Определён в:
range в интерфейсе TemporalAccessor
Параметры:
field - поле, для которого запрашивается диапазон; не null
Возвращает:
диапазон допустимых значений поля; не null
Выбрасывает:
DateTimeException - если диапазон для поля не может быть получен
UnsupportedTemporalTypeException - если единица измерения не поддерживается

get

default int get(TemporalField field)
Получает значение указанного поля для этой эры в виде int.

Запрашивает у этой эры значение указанного поля. Возвращаемое значение всегда будет находиться в допустимом диапазоне значений поля. Если вернуть значение невозможно, поскольку поле не поддерживается или по другой причине, выбрасывается исключение.

Если поле является ChronoField, запрос обрабатывается здесь. Для поля ERA возвращается значение эры. Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.

Если поле не является ChronoField, результат этого метода получается вызовом TemporalField.getFrom(TemporalAccessor) с аргументом this. Возможность получить значение и его смысл определяются самим полем.

Определён в:
get в интерфейсе TemporalAccessor
Параметры:
field - поле для получения значения; не null
Возвращает:
значение поля
Выбрасывает:
DateTimeException - если значение поля не может быть получено или выходит за пределы допустимого диапазона значений поля
UnsupportedTemporalTypeException - если поле не поддерживается или диапазон значений превышает int
ArithmeticException - при переполнении числового значения

getLong

default long getLong(TemporalField field)
Получает значение указанного поля для этой эры в виде long.

Запрашивает у этой эры значение указанного поля. Если вернуть значение невозможно, поскольку поле не поддерживается или по другой причине, выбрасывается исключение.

Если поле является ChronoField, запрос обрабатывается здесь. Для поля ERA возвращается значение эры. Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.

Если поле не является ChronoField, результат этого метода получается вызовом TemporalField.getFrom(TemporalAccessor) с аргументом this. Возможность получить значение и его смысл определяются самим полем.

Определён в:
getLong в интерфейсе TemporalAccessor
Параметры:
field - поле для получения значения; не null
Возвращает:
значение поля
Выбрасывает:
DateTimeException - если значение поля не может быть получено
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - при переполнении числового значения

query

default <R> R query(TemporalQuery<R> query)
Выполняет запрос к этой эре с помощью указанного запроса.

Запрашивает у этой эры данные с помощью указанного объекта стратегии запроса. Объект TemporalQuery задаёт логику получения результата. Чтобы понять, каким будет результат этого метода, ознакомьтесь с документацией запроса.

Результат этого метода получается вызовом метода TemporalQuery.queryFrom(TemporalAccessor) для указанного запроса с передачей this в качестве аргумента.

Определён в:
query в интерфейсе TemporalAccessor
Параметры типа:
R - тип результата
Параметры:
query - запрос для выполнения; не null
Возвращает:
результат запроса; может быть возвращено null (определяется запросом)
Выбрасывает:
DateTimeException - если выполнить запрос не удалось (определяется запросом)
ArithmeticException - при переполнении числового значения (определяется запросом)

adjustInto

default Temporal adjustInto(Temporal temporal)
Изменяет указанный объект временной шкалы так, чтобы его эра совпадала с эрой этого объекта.

Возвращает объект временной шкалы того же наблюдаемого типа, что и входной объект, изменив его эру на эру этого объекта.

Это изменение эквивалентно вызову Temporal.with(TemporalField, long) с передачей ChronoField.ERA в качестве поля.

В большинстве случаев понятнее изменить порядок вызова, используя Temporal.with(TemporalAdjuster):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisEra.adjustInto(temporal);
  temporal = temporal.with(thisEra);

Этот экземпляр неизменяем и не изменяется при вызове данного метода.

Определён в:
adjustInto в интерфейсе TemporalAdjuster
Параметры:
temporal - целевой объект для изменения; не null
Возвращает:
изменённый объект; не null
Выбрасывает:
DateTimeException - если выполнить изменение не удалось
ArithmeticException - при переполнении числового значения

getDisplayName

default String getDisplayName(TextStyle style, Locale locale)
Получает текстовое представление этой эры.

Возвращает текстовое название, используемое для идентификации эры и предназначенное для отображения пользователю. Параметры определяют стиль возвращаемого текста и локаль.

Если текстовое соответствие не найдено, возвращается numeric value.

Примечание к API:
Эта реализация по умолчанию подходит для большинства реализаций.
Параметры:
style - требуемый стиль текста; не null
locale - используемая локаль; не null
Возвращает:
текстовое значение эры; не null

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.base/java/time/chrono/Era.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API