Spec-Zone.ru › OpenJDK 25

Класс JapaneseChronology

java.lang.Object
java.time.chrono.AbstractChronology
java.time.chrono.JapaneseChronology
Все реализуемые интерфейсы:
Serializable, Comparable<Chronology>, Chronology
public final class JapaneseChronology extends AbstractChronology implements Serializable
Японская императорская календарная система.

Эта хронология определяет правила японской императорской календарной системы. Эта календарная система используется главным образом в Японии. Японская императорская календарная система совпадает с календарной системой ISO, за исключением нумерации лет по эрам.

Япония перешла на григорианский календарь начиная с 6-го года Мэйдзи. Поддерживаются только эры Мэйдзи и более поздние; даты до 1 января 6-го года Мэйдзи не поддерживаются.

Поддерживаемые экземпляры ChronoField:

  • DAY_OF_WEEK
  • DAY_OF_MONTH
  • DAY_OF_YEAR
  • EPOCH_DAY
  • MONTH_OF_YEAR
  • PROLEPTIC_MONTH
  • YEAR_OF_ERA
  • YEAR
  • ERA
Требования к реализации:
Этот класс является неизменяемым и потокобезопасным.
Начиная с версии:
1.8
См. также:
  • Сериализованное представление

Краткое описание полей

Модификатор и тип Поле Описание
static final JapaneseChronology INSTANCE
Экземпляр-одиночка для японской хронологии.

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

Модификатор и тип Метод Описание
JapaneseDate date(int prolepticYear, int month, int dayOfMonth)
Создает локальную дату в японской календарной системе на основе полей пролептического года, месяца года и дня месяца.
JapaneseDate date(Era era, int yearOfEra, int month, int dayOfMonth)
Создает локальную дату в японской календарной системе на основе полей эры, года эры, месяца года и дня месяца.
JapaneseDate date(TemporalAccessor temporal)
Создает локальную дату в этой хронологии на основе другого временного объекта.
JapaneseDate dateEpochDay(long epochDay)
Создает локальную дату в японской календарной системе на основе дня эпохи.
JapaneseDate dateNow()
Создает текущую локальную дату в этой хронологии на основе системных часов в часовом поясе по умолчанию.
JapaneseDate dateNow(Clock clock)
Создает текущую локальную дату в этой хронологии на основе указанных часов.
JapaneseDate dateNow(ZoneId zone)
Создает текущую локальную дату в этой хронологии на основе системных часов в указанном часовом поясе.
JapaneseDate dateYearDay(int prolepticYear, int dayOfYear)
Создает локальную дату в японской календарной системе на основе полей пролептического года и дня года.
JapaneseDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
Создает локальную дату в японской календарной системе на основе полей эры, года эры и дня года.
JapaneseEra eraOf(int eraValue)
Возвращает объект эры календарной системы по заданному числовому значению.
List<Era> eras()
Возвращает список эр для хронологии.
String getCalendarType()
Возвращает тип календаря базовой календарной системы — 'japanese'.
String getId()
Возвращает идентификатор хронологии — 'Japanese'.
boolean isIsoBased()
JapaneseChronology — хронология на основе ISO, поддерживающая поля из IsoFields, такие как DAY_OF_QUARTER и QUARTER_OF_YEAR.
boolean isLeapYear(long prolepticYear)
Проверяет, является ли указанный год високосным.
ChronoLocalDateTime<JapaneseDate> localDateTime(TemporalAccessor temporal)
Создает локальные дату и время в этой хронологии на основе другого временного объекта.
int prolepticYear(Era era, int yearOfEra)
Вычисляет пролептический год по эре и году эры.
ValueRange range(ChronoField field)
Возвращает диапазон допустимых значений для указанного поля.
JapaneseDate resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle)
Преобразует разобранные значения ChronoField в дату в процессе разбора.
ChronoZonedDateTime<JapaneseDate> zonedDateTime(Instant instant, ZoneId zone)
Создает ChronoZonedDateTime в этой хронологии на основе Instant.
ChronoZonedDateTime<JapaneseDate> zonedDateTime(TemporalAccessor temporal)
Создает ChronoZonedDateTime в этой хронологии на основе другого временного объекта.

Методы, объявленные в классе AbstractChronology

compareTo, equals, hashCode, toString

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе Chronology

epochSecond, epochSecond, getDisplayName, period

Подробное описание полей

INSTANCE

public static final JapaneseChronology INSTANCE
Экземпляр-одиночка для японской хронологии.

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

getId

public String getId()
Возвращает идентификатор хронологии — 'Japanese'.

Идентификатор однозначно определяет Chronology. Его можно использовать для поиска Chronology с помощью Chronology.of(String).

Определено в:
getId в интерфейсе Chronology
Возвращает:
идентификатор хронологии — 'Japanese'
См. также:
  • getCalendarType()

getCalendarType

public String getCalendarType()
Возвращает тип календаря базовой календарной системы — 'japanese'.

Тип календаря — это идентификатор, определённый спецификацией языка разметки данных локали Unicode (LDML). Его можно использовать для поиска Chronology с помощью Chronology.of(String). Его также можно использовать как часть локали, доступ к которой осуществляется через Locale.getUnicodeLocaleType(String) с ключом 'ca'.

Определено в:
getCalendarType в интерфейсе Chronology
Возвращает:
тип календарной системы — 'japanese'
См. также:
  • getId()

date

public JapaneseDate date(Era era, int yearOfEra, int month, int dayOfMonth)
Создаёт локальную дату японской календарной системы на основе полей эры, года эры, месяца и дня месяца.

Японские месяцы и дни месяца совпадают с месяцами и днями месяца календарной системы ISO. Они не обнуляются при смене эры. Например:

 6th Jan Showa 64 = ISO 1989-01-06
 7th Jan Showa 64 = ISO 1989-01-07
 8th Jan Heisei 1 = ISO 1989-01-08
 9th Jan Heisei 1 = ISO 1989-01-09
Определено в:
date в интерфейсе Chronology
Параметры:
era — японская эра, не null
yearOfEra — год эры
month — месяц года
dayOfMonth — день месяца
Возвращает:
локальную дату японской календарной системы, не null
Исключения:
DateTimeException — если не удалось создать дату
ClassCastException — если era не является JapaneseEra

date

public JapaneseDate date(int prolepticYear, int month, int dayOfMonth)
Создаёт локальную дату японской календарной системы на основе полей пролептического года, месяца и дня месяца.

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

Определено в:
date в интерфейсе Chronology
Параметры:
prolepticYear — пролептический год
month — месяц года
dayOfMonth — день месяца
Возвращает:
локальную дату японской календарной системы, не null
Исключения:
DateTimeException — если не удалось создать дату

dateYearDay

public JapaneseDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
Создаёт локальную дату японской календарной системы на основе полей эры, года эры и дня года.

В этой фабрике день года отсчитывается от начала года эры. Это определение меняет обычное значение дня года только в те годы, когда год эры сбрасывается до единицы из-за смены эры. Например:

 6th Jan Showa 64 = day-of-year 6
 7th Jan Showa 64 = day-of-year 7
 8th Jan Heisei 1 = day-of-year 1
 9th Jan Heisei 1 = day-of-year 2
Определено в:
dateYearDay в интерфейсе Chronology
Параметры:
era — японская эра, не null
yearOfEra — год эры
dayOfYear — день года
Возвращает:
локальную дату японской календарной системы, не null
Исключения:
DateTimeException — если не удалось создать дату
ClassCastException — если era не является JapaneseEra

dateYearDay

public JapaneseDate dateYearDay(int prolepticYear, int dayOfYear)
Создаёт локальную дату японской календарной системы на основе полей пролептического года и дня года.

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

Определено в:
dateYearDay в интерфейсе Chronology
Параметры:
prolepticYear — пролептический год
dayOfYear — день года
Возвращает:
локальную дату японской календарной системы, не null
Исключения:
DateTimeException — если не удалось создать дату

dateEpochDay

public JapaneseDate dateEpochDay(long epochDay)
Создаёт локальную дату японской календарной системы на основе дня эпохи.
Определено в:
dateEpochDay в интерфейсе Chronology
Параметры:
epochDay — день эпохи
Возвращает:
локальную дату японской календарной системы, не null
Исключения:
DateTimeException — если не удалось создать дату

dateNow

public JapaneseDate dateNow()
Описание скопировано из интерфейса: Chronology
Получает текущую локальную дату этой хронологии по системным часам в часовом поясе по умолчанию.

Для получения текущей даты будет выполнен запрос к system clock в часовом поясе по умолчанию.

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

Определено в:
dateNow в интерфейсе Chronology
Возвращает:
текущую локальную дату по системным часам и в часовом поясе по умолчанию, не null

dateNow

public JapaneseDate dateNow(ZoneId zone)
Описание скопировано из интерфейса: Chronology
Получает текущую локальную дату этой хронологии по системным часам в указанном часовом поясе.

Для получения текущей даты будет выполнен запрос к system clock. Указание часового пояса исключает зависимость от часового пояса по умолчанию.

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

Определено в:
dateNow в интерфейсе Chronology
Параметры:
zone — идентификатор часового пояса, не null
Возвращает:
текущую локальную дату по системным часам, не null

dateNow

public JapaneseDate dateNow(Clock clock)
Описание скопировано из интерфейса: Chronology
Получает текущую локальную дату этой хронологии по указанным часам.

Для получения текущей даты — сегодняшнего дня — будет выполнен запрос к указанным часам. Этот метод позволяет использовать альтернативные часы для тестирования. Альтернативные часы можно создать с помощью dependency injection.

Определено в:
dateNow в интерфейсе Chronology
Параметры:
clock — используемые часы, не null
Возвращает:
текущую локальную дату, не null

date

public JapaneseDate date(TemporalAccessor temporal)
Описание скопировано из интерфейса: Chronology
Получает локальную дату этой хронологии из другого временного объекта.

Метод получает дату этой хронологии на основе указанного временного объекта. TemporalAccessor представляет произвольный набор данных о дате и времени, который эта фабрика преобразует в экземпляр ChronoLocalDate.

При преобразовании обычно используется поле EPOCH_DAY, стандартизованное для разных календарных систем.

Сигнатура этого метода совпадает с сигнатурой функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса через ссылку на метод aChronology::date.

Определено в:
date в интерфейсе Chronology
Параметры:
temporal — преобразуемый временной объект, не null
Возвращает:
локальную дату этой хронологии, не null
См. также:
  • ChronoLocalDate.from(TemporalAccessor)

localDateTime

public ChronoLocalDateTime<JapaneseDate> localDateTime(TemporalAccessor temporal)
Описание скопировано из интерфейса: Chronology
Получает локальные дату и время этой хронологии из другого временного объекта.

Метод получает дату и время этой хронологии на основе указанного временного объекта. TemporalAccessor представляет произвольный набор данных о дате и времени, который эта фабрика преобразует в экземпляр ChronoLocalDateTime.

При преобразовании из временного объекта извлекаются и объединяются ChronoLocalDate и LocalTime. Реализациям разрешается выполнять оптимизацию, например обращаться к полям, эквивалентным соответствующим объектам. Результат относится к этой хронологии.

Сигнатура этого метода совпадает с сигнатурой функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса через ссылку на метод aChronology::localDateTime.

Определено в:
localDateTime в интерфейсе Chronology
Параметры:
temporal — преобразуемый временной объект, не null
Возвращает:
локальные дату и время этой хронологии, не null
См. также:
  • ChronoLocalDateTime.from(TemporalAccessor)

zonedDateTime

public ChronoZonedDateTime<JapaneseDate> zonedDateTime(TemporalAccessor temporal)
Описание скопировано из интерфейса: Chronology
Получает ChronoZonedDateTime этой хронологии из другого временного объекта.

Метод получает дату и время с часовым поясом этой хронологии на основе указанного временного объекта. TemporalAccessor представляет произвольный набор данных о дате и времени, который эта фабрика преобразует в экземпляр ChronoZonedDateTime.

Сначала преобразование попытается получить из временного объекта ZoneId, а при необходимости — ZoneOffset. Затем оно попытается получить Instant, а при необходимости — ChronoLocalDateTime. Результатом станет либо комбинация ZoneId или ZoneOffset с Instant или ChronoLocalDateTime. Реализациям разрешается выполнять оптимизацию, например обращаться к полям, эквивалентным соответствующим объектам. Результат относится к этой хронологии.

Сигнатура этого метода совпадает с сигнатурой функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса через ссылку на метод aChronology::zonedDateTime.

Определено в:
zonedDateTime в интерфейсе Chronology
Параметры:
temporal — преобразуемый временной объект, не null
Возвращает:
дату и время с часовым поясом этой хронологии, не null
См. также:
  • ChronoZonedDateTime.from(TemporalAccessor)

zonedDateTime

public ChronoZonedDateTime<JapaneseDate> zonedDateTime(Instant instant, ZoneId zone)
Описание скопировано из интерфейса: Chronology
Получает ChronoZonedDateTime этой хронологии из Instant.

Метод получает дату и время с часовым поясом, соответствующие указанному моменту времени.

Определено в:
zonedDateTime в интерфейсе Chronology
Параметры:
instant — момент времени, на основе которого создаются дата и время, не null
zone — часовой пояс, не null
Возвращает:
дату и время с часовым поясом, не null

isLeapYear

public boolean isLeapYear(long prolepticYear)
Проверяет, является ли указанный год високосным.

Високосные годы японского календаря в точности совпадают с високосными годами ISO. Этот метод не проверяет переданное значение года и возвращает определённый результат только для годов из поддерживаемого диапазона.

Определено в:
isLeapYear в интерфейсе Chronology
Параметры:
prolepticYear — проверяемый пролептический год; допустимость диапазона не проверяется
Возвращает:
true, если год является високосным

prolepticYear

public int prolepticYear(Era era, int yearOfEra)
Описание скопировано из интерфейса: Chronology
Вычисляет пролептический год по эре и году эры.

Объединяет эру и год эры в единое поле пролептического года.

Если хронология активно использует эры, например JapaneseChronology, год эры проверяется на соответствие эре. Для других хронологий проверка необязательна.

Определено в:
prolepticYear в интерфейсе Chronology
Параметры:
era — эра соответствующего типа для этой хронологии, не null
yearOfEra — год эры в этой хронологии
Возвращает:
пролептический год

eraOf

public JapaneseEra eraOf(int eraValue)
Возвращает объект эры календарной системы по заданному числовому значению. Числовые значения, поддерживаемые этим методом, совпадают со значениями, поддерживаемыми методом JapaneseEra.of(int).
Определено в:
eraOf в интерфейсе Chronology
Параметры:
eraValue — значение эры
Возвращает:
японскую Era для указанного числового значения эры
Исключения:
DateTimeException — если eraValue недопустимо

eras

public List<Era> eras()
Описание скопировано из интерфейса: Chronology
Возвращает список эр этой хронологии.

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

Определено в:
eras в интерфейсе Chronology
Возвращает:
список эр этой хронологии; может быть неизменяемым, не null

range

public ValueRange range(ChronoField field)
Описание скопировано из интерфейса: Chronology
Возвращает диапазон допустимых значений указанного поля.

Все поля можно представить целым числом типа long. Этот метод возвращает объект, описывающий допустимый диапазон таких значений.

Обратите внимание, что результат описывает только минимальное и максимальное допустимые значения; не следует делать на их основе чрезмерных выводов. Например, в диапазоне могут быть значения, недопустимые для этого поля.

Этот метод возвращает результат независимо от того, поддерживает ли хронология это поле.

Определено в:
range в интерфейсе Chronology
Параметры:
field — поле, для которого нужно получить диапазон, не null
Возвращает:
диапазон допустимых значений поля, не null

resolveDate

public JapaneseDate resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle)
Описание скопировано из класса: AbstractChronology
Преобразует разобранные значения ChronoField в дату во время разбора.

Большинство реализаций TemporalField разрешаются с помощью метода resolve поля. В отличие от них, класс ChronoField определяет поля, имеющие смысл только относительно хронологии. Поэтому здесь поля даты ChronoField разрешаются в контексте конкретной хронологии.

Экземпляры ChronoField разрешаются этим методом, который может быть переопределён в подклассах.

  • EPOCH_DAY — если присутствует, преобразуется в дату, после чего все остальные поля даты проверяются на соответствие этой дате.
  • PROLEPTIC_MONTH — если присутствует, разделяется на YEAR и MONTH_OF_YEAR. В строгом и интеллектуальном режимах поле проверяется.
  • YEAR_OF_ERA и ERA — если присутствуют оба поля, они объединяются в YEAR. В нестрогом режиме диапазон YEAR_OF_ERA не проверяется; в интеллектуальном и строгом режимах он проверяется. Диапазон ERA проверяется во всех трёх режимах. Если присутствует только YEAR_OF_ERA и выбран интеллектуальный или нестрогий режим, предполагается последняя доступная эра. В строгом режиме эра не предполагается, а YEAR_OF_ERA остаётся без изменений. Если присутствует только ERA, оно остаётся без изменений.
  • YEAR, MONTH_OF_YEAR и DAY_OF_MONTH — если присутствуют все три поля, они объединяются в дату. Во всех трёх режимах проверяется YEAR. В интеллектуальном и строгом режимах проверяются месяц и день. В нестрогом режиме дата составляется так, как если бы сначала была создана дата первого дня первого месяца указанного года, затем добавлена разница в месяцах, а затем разница в днях. В интеллектуальном режиме, если день месяца превышает максимум для данного года и месяца, он корректируется до последнего дня месяца. В строгом режиме три поля должны образовывать допустимую дату.
  • YEAR и DAY_OF_YEAR — если присутствуют оба поля, они объединяются в дату. Во всех трёх режимах проверяется YEAR. В нестрогом режиме дата составляется так, как если бы сначала была создана дата первого дня указанного года, а затем добавлена разница в днях. В интеллектуальном и строгом режимах эти два поля должны образовывать допустимую дату.
  • YEAR, MONTH_OF_YEAR, ALIGNED_WEEK_OF_MONTH и ALIGNED_DAY_OF_WEEK_IN_MONTH — если присутствуют все четыре поля, они объединяются в дату. Во всех трёх режимах проверяется YEAR. В нестрогом режиме дата составляется так, как если бы сначала была создана дата первого дня первого месяца указанного года, затем добавлена разница в месяцах, после этого разница в неделях и, наконец, в днях. В интеллектуальном и строгом режимах все четыре поля проверяются на соответствие внешним границам диапазонов. Затем дата составляется так, как если бы сначала была создана дата первого дня указанного года и месяца, а затем к ней было добавлено количество недель и дней, необходимое для достижения заданных значений. В строгом режиме дополнительно проверяется, что корректировка дня и недели не изменила месяц.
  • YEAR, MONTH_OF_YEAR, ALIGNED_WEEK_OF_MONTH и DAY_OF_WEEK — если присутствуют все четыре поля, они объединяются в дату. Алгоритм такой же, как описанный выше для года, месяца и недели в ALIGNED_DAY_OF_WEEK_IN_MONTH. После обработки года, месяца и недели день недели корректируется до следующего совпадающего дня недели или остаётся без изменений, если он уже совпадает.
  • YEAR, ALIGNED_WEEK_OF_YEAR и ALIGNED_DAY_OF_WEEK_IN_YEAR — если присутствуют все три поля, они объединяются в дату. Во всех трёх режимах проверяется YEAR. В нестрогом режиме дата составляется так, как если бы сначала была создана дата первого дня указанного года, затем добавлена разница в неделях, а после неё — в днях. В интеллектуальном и строгом режимах все три поля проверяются на соответствие внешним границам диапазонов. Затем дата составляется так, как если бы сначала была создана дата первого дня указанного года, а затем к ней было добавлено количество недель и дней, необходимое для достижения заданных значений. В строгом режиме дополнительно проверяется, что корректировка дня и недели не изменила год.
  • YEAR, ALIGNED_WEEK_OF_YEAR и DAY_OF_WEEK — если присутствуют все три поля, они объединяются в дату. Алгоритм такой же, как описанный выше для года и недели в ALIGNED_DAY_OF_WEEK_IN_YEAR. После обработки года и недели день недели корректируется до следующего совпадающего дня недели или остаётся без изменений, если он уже совпадает.

Реализация по умолчанию подходит для большинства календарных систем. Если найдено поле ChronoField.YEAR_OF_ERA без поля ChronoField.ERA, используется последняя эра из Chronology.eras(). Реализация предполагает, что неделя состоит из 7 дней, первый день месяца имеет значение 1, первый день года имеет значение 1, а первый день месяца и года всегда существует.

Определено в:
resolveDate в интерфейсе Chronology
Переопределяет:
resolveDate в классе AbstractChronology
Параметры:
fieldValues — карта полей и значений, которую можно изменять, не null
resolverStyle — запрошенный тип разрешения, не null
Возвращает:
разрешённую дату; null, если данных недостаточно для создания даты

isIsoBased

public boolean isIsoBased()
JapaneseChronology — хронология на основе ISO, поддерживающая поля из IsoFields, такие как DAY_OF_QUARTER и QUARTER_OF_YEAR.
Определено в:
isIsoBased в интерфейсе Chronology
Возвращает:
true
Начиная с:
19
См. также:
  • IsoFields

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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/JapaneseChronology.html

Spec-Zone.ru

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