Класс 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 |
Создает локальную дату в японской календарной системе на основе полей пролептического года, месяца года и дня месяца. |
JapaneseDate |
date |
Создает локальную дату в японской календарной системе на основе полей эры, года эры, месяца года и дня месяца. |
JapaneseDate |
date |
Создает локальную дату в этой хронологии на основе другого временного объекта. |
JapaneseDate |
dateEpochDay |
Создает локальную дату в японской календарной системе на основе дня эпохи. |
JapaneseDate |
dateNow() |
Создает текущую локальную дату в этой хронологии на основе системных часов в часовом поясе по умолчанию. |
JapaneseDate |
dateNow |
Создает текущую локальную дату в этой хронологии на основе указанных часов. |
JapaneseDate |
dateNow |
Создает текущую локальную дату в этой хронологии на основе системных часов в указанном часовом поясе. |
JapaneseDate |
dateYearDay |
Создает локальную дату в японской календарной системе на основе полей пролептического года и дня года. |
JapaneseDate |
dateYearDay |
Создает локальную дату в японской календарной системе на основе полей эры, года эры и дня года. |
JapaneseEra |
eraOf |
Возвращает объект эры календарной системы по заданному числовому значению. |
List |
eras() |
Возвращает список эр для хронологии. |
String |
getCalendarType() |
Возвращает тип календаря базовой календарной системы — 'japanese'. |
String |
getId() |
Возвращает идентификатор хронологии — 'Japanese'. |
boolean |
isIsoBased() |
JapaneseChronology — хронология на основе ISO, поддерживающая поля из IsoFields, такие как DAY_OF_QUARTER и QUARTER_OF_YEAR. |
boolean |
isLeapYear |
Проверяет, является ли указанный год високосным. |
ChronoLocalDateTime |
localDateTime |
Создает локальные дату и время в этой хронологии на основе другого временного объекта. |
int |
prolepticYear |
Вычисляет пролептический год по эре и году эры. |
ValueRange |
range |
Возвращает диапазон допустимых значений для указанного поля. |
JapaneseDate |
resolveDate |
Преобразует разобранные значения ChronoField в дату в процессе разбора. |
ChronoZonedDateTime |
zonedDateTime |
Создает ChronoZonedDateTime в этой хронологии на основе Instant. |
ChronoZonedDateTime |
zonedDateTime |
Создает ChronoZonedDateTime в этой хронологии на основе другого временного объекта. |
Методы, объявленные в классе AbstractChronology
compareTo, equals, hashCode, toString
Методы, объявленные в интерфейсе Chronology
epochSecond, epochSecond, getDisplayName, period
Подробное описание полей
INSTANCE
public static final JapaneseChronology INSTANCE
Подробное описание методов
getId
public String getId()
Идентификатор однозначно определяет Chronology. Его можно использовать для поиска Chronology с помощью Chronology.of(String).
- Определено в:
-
getIdв интерфейсеChronology - Возвращает:
- идентификатор хронологии — 'Japanese'
- См. также:
getCalendarType
public String getCalendarType()
Тип календаря — это идентификатор, определённый спецификацией языка разметки данных локали Unicode (LDML). Его можно использовать для поиска Chronology с помощью Chronology.of(String). Его также можно использовать как часть локали, доступ к которой осуществляется через Locale.getUnicodeLocaleType(String) с ключом 'ca'.
- Определено в:
-
getCalendarTypeв интерфейсеChronology - Возвращает:
- тип календарной системы — 'japanese'
- См. также:
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
- См. также:
localDateTime
public ChronoLocalDateTime<JapaneseDate> localDateTime(TemporalAccessor temporal)
Chronology Метод получает дату и время этой хронологии на основе указанного временного объекта. TemporalAccessor представляет произвольный набор данных о дате и времени, который эта фабрика преобразует в экземпляр ChronoLocalDateTime.
При преобразовании из временного объекта извлекаются и объединяются ChronoLocalDate и LocalTime. Реализациям разрешается выполнять оптимизацию, например обращаться к полям, эквивалентным соответствующим объектам. Результат относится к этой хронологии.
Сигнатура этого метода совпадает с сигнатурой функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса через ссылку на метод aChronology::localDateTime.
- Определено в:
-
localDateTimeв интерфейсеChronology - Параметры:
-
temporal— преобразуемый временной объект, не null - Возвращает:
- локальные дату и время этой хронологии, не null
- См. также:
zonedDateTime
public ChronoZonedDateTime<JapaneseDate> zonedDateTime(TemporalAccessor temporal)
ChronologyChronoZonedDateTime этой хронологии из другого временного объекта. Метод получает дату и время с часовым поясом этой хронологии на основе указанного временного объекта. TemporalAccessor представляет произвольный набор данных о дате и времени, который эта фабрика преобразует в экземпляр ChronoZonedDateTime.
Сначала преобразование попытается получить из временного объекта ZoneId, а при необходимости — ZoneOffset. Затем оно попытается получить Instant, а при необходимости — ChronoLocalDateTime. Результатом станет либо комбинация ZoneId или ZoneOffset с Instant или ChronoLocalDateTime. Реализациям разрешается выполнять оптимизацию, например обращаться к полям, эквивалентным соответствующим объектам. Результат относится к этой хронологии.
Сигнатура этого метода совпадает с сигнатурой функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса через ссылку на метод aChronology::zonedDateTime.
- Определено в:
-
zonedDateTimeв интерфейсеChronology - Параметры:
-
temporal— преобразуемый временной объект, не null - Возвращает:
- дату и время с часовым поясом этой хронологии, не null
- См. также:
zonedDateTime
public ChronoZonedDateTime<JapaneseDate> zonedDateTime(Instant instant, ZoneId zone)
ChronologyChronoZonedDateTime этой хронологии из 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)
AbstractChronologyChronoField в дату во время разбора. Большинство реализаций 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
- См. также:
© 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