Класс IsoChronology
- Все реализуемые интерфейсы:
Serializable, Comparable<Chronology>, Chronology
public final class IsoChronology extends AbstractChronology implements Serializable
Эта хронология определяет правила календарной системы ISO. Эта календарная система основана на стандарте ISO-8601, который является фактическим мировым календарём.
Поля определены следующим образом:
- эра — существует две эры: «Наша эра» (CE) и «До нашей эры» (BCE).
- год эры — для текущей эры CE год эры совпадает с пролептическим годом. Для эры BCE до эпохи ISO год увеличивается от 1 по мере движения времени назад.
- пролептический год — для текущей эры пролептический год совпадает с годом эры. Для предыдущей эры годы включают ноль и отрицательные значения.
- месяц года — в году ISO 12 месяцев, пронумерованных от 1 до 12.
- день месяца — в каждом месяце ISO от 28 до 31 дня, пронумерованных от 1 до 31. В месяцах 4, 6, 9 и 11 — 30 дней, в месяцах 1, 3, 5, 7, 8, 10 и 12 — 31 день. Во втором месяце 28 дней или 29 в високосном году.
- день года — в обычном году ISO 365 дней, а в високосном — 366. Дни нумеруются от 1 до 365 или от 1 до 366.
- високосный год — високосные годы наступают каждые 4 года, за исключением случаев, когда год делится на 100, но не делится на 400.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- Появился в версии:
- 1.8
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final IsoChronology |
INSTANCE |
Экземпляр-одиночка хронологии ISO. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
LocalDate |
date |
Получает локальную дату ISO из полей пролептического года, месяца года и дня месяца. |
LocalDate |
date |
Получает локальную дату ISO из полей эры, года эры, месяца года и дня месяца. |
LocalDate |
date |
Получает локальную дату ISO из другого объекта даты и времени. |
LocalDate |
dateEpochDay |
Получает локальную дату ISO из дня эпохи. |
LocalDate |
dateNow() |
Получает текущую локальную дату ISO по системным часам в часовом поясе по умолчанию. |
LocalDate |
dateNow |
Получает текущую локальную дату ISO по указанным часам. |
LocalDate |
dateNow |
Получает текущую локальную дату ISO по системным часам в указанном часовом поясе. |
LocalDate |
dateYearDay |
Получает локальную дату ISO из полей пролептического года и дня года. |
LocalDate |
dateYearDay |
Получает локальную дату ISO из полей эры, года эры и дня года. |
long |
epochSecond |
Получает количество секунд от эпохи 1970-01-01T00:00:00Z. |
IsoEra |
eraOf |
Создаёт объект эры хронологии из числового значения. |
List |
eras() |
Получает список эр хронологии. |
String |
getCalendarType() |
Получает тип календаря базовой календарной системы — 'iso8601'. |
String |
getId() |
Получает идентификатор хронологии — 'ISO'. |
boolean |
isIsoBased() |
IsoChronology — хронология на основе ISO, поддерживающая поля из IsoFields, например DAY_OF_QUARTER и QUARTER_OF_YEAR. |
boolean |
isLeapYear |
Проверяет, является ли год високосным согласно правилам пролептической календарной системы ISO. |
LocalDateTime |
localDateTime |
Получает локальную дату и время ISO из другого объекта даты и времени. |
Period |
period |
Получает период для этой хронологии, заданный в годах, месяцах и днях. |
int |
prolepticYear |
Вычисляет пролептический год по эре и году эры. |
ValueRange |
range |
Получает диапазон допустимых значений для указанного поля. |
LocalDate |
resolveDate |
Преобразует разобранные значения ChronoField в дату в ходе разбора. |
ZonedDateTime |
zonedDateTime |
Получает дату и время ISO с часовым поясом в этой хронологии из Instant. |
ZonedDateTime |
zonedDateTime |
Получает дату и время ISO с часовым поясом из другого объекта даты и времени. |
Методы, объявленные в классе AbstractChronology
compareTo, equals, hashCode, toString
Методы, объявленные в интерфейсе Chronology
epochSecond, getDisplayName
Подробное описание полей
INSTANCE
public static final IsoChronology INSTANCE
Подробное описание методов
getId
public String getId()
Идентификатор однозначно определяет Chronology. Его можно использовать для поиска Chronology с помощью Chronology.of(String).
- Определено в:
-
getIdв интерфейсеChronology - Возвращает:
- идентификатор хроники — 'ISO'
- См. также:
getCalendarType
public String getCalendarType()
Тип календаря — это идентификатор, определенный спецификацией Unicode Locale Data Markup Language (LDML). Его можно использовать для поиска Chronology с помощью Chronology.of(String). Его также можно использовать как часть локали; он доступен через Locale.getUnicodeLocaleType(String) с ключом 'ca'.
- Определено в:
-
getCalendarTypeв интерфейсеChronology - Возвращает:
- тип календарной системы — 'iso8601'
- См. также:
date
public LocalDate date(Era era, int yearOfEra, int month, int dayOfMonth)
- Определено в:
-
dateв интерфейсеChronology - Параметры:
-
era— эра ISO, не null -
yearOfEra— год ISO в эре -
month— месяц ISO -
dayOfMonth— день месяца ISO - Возвращает:
- локальную дату ISO, не null
- Вызывает исключение:
-
DateTimeException— если не удается создать дату -
ClassCastException— если типeraне являетсяIsoEra
date
public LocalDate date(int prolepticYear, int month, int dayOfMonth)
Эквивалентно вызову LocalDate.of(int, int, int).
- Определено в:
-
dateв интерфейсеChronology - Параметры:
-
prolepticYear— пролептический год ISO -
month— месяц ISO -
dayOfMonth— день месяца ISO - Возвращает:
- локальную дату ISO, не null
- Вызывает исключение:
-
DateTimeException— если не удается создать дату
dateYearDay
public LocalDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
- Определено в:
-
dateYearDayв интерфейсеChronology - Параметры:
-
era— эра ISO, не null -
yearOfEra— год ISO в эре -
dayOfYear— день года ISO - Возвращает:
- локальную дату ISO, не null
- Вызывает исключение:
-
DateTimeException— если не удается создать дату
dateYearDay
public LocalDate dateYearDay(int prolepticYear, int dayOfYear)
Эквивалентно вызову LocalDate.ofYearDay(int, int).
- Определено в:
-
dateYearDayв интерфейсеChronology - Параметры:
-
prolepticYear— пролептический год ISO -
dayOfYear— день года ISO - Возвращает:
- локальную дату ISO, не null
- Вызывает исключение:
-
DateTimeException— если не удается создать дату
dateEpochDay
public LocalDate dateEpochDay(long epochDay)
Эквивалентно вызову LocalDate.ofEpochDay(long).
- Определено в:
-
dateEpochDayв интерфейсеChronology - Параметры:
-
epochDay— день от начала эпохи - Возвращает:
- локальную дату ISO, не null
- Вызывает исключение:
-
DateTimeException— если не удается создать дату
date
public LocalDate date(TemporalAccessor temporal)
Эквивалентно вызову LocalDate.from(TemporalAccessor).
- Определено в:
-
dateв интерфейсеChronology - Параметры:
-
temporal— объект даты и времени для преобразования, не null - Возвращает:
- локальную дату ISO, не null
- Вызывает исключение:
-
DateTimeException— если не удается создать дату - См. также:
epochSecond
public long epochSecond(int prolepticYear, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Количество секунд вычисляется с использованием года, месяца, дня месяца, часа, минуты, секунды и смещения часового пояса.
- Определено в:
-
epochSecondв интерфейсеChronology - Параметры:
-
prolepticYear— год, от MIN_YEAR до MAX_YEAR -
month— месяц года, от 1 до 12 -
dayOfMonth— день месяца, от 1 до 31 -
hour— час суток, от 0 до 23 -
minute— минута часа, от 0 до 59 -
second— секунда минуты, от 0 до 59 -
zoneOffset— смещение часового пояса, не null - Возвращает:
- количество секунд относительно 1970-01-01T00:00:00Z; может быть отрицательным
- Вызывает исключение:
-
DateTimeException— если значение любого аргумента выходит за допустимый диапазон или день месяца недопустим для данного месяца - Начиная с версии:
- 9
localDateTime
public LocalDateTime localDateTime(TemporalAccessor temporal)
Эквивалентно вызову LocalDateTime.from(TemporalAccessor).
- Определено в:
-
localDateTimeв интерфейсеChronology - Параметры:
-
temporal— объект даты и времени для преобразования, не null - Возвращает:
- локальные дату и время ISO, не null
- Вызывает исключение:
-
DateTimeException— если не удается создать дату и время - См. также:
zonedDateTime
public ZonedDateTime zonedDateTime(TemporalAccessor temporal)
Эквивалентно вызову ZonedDateTime.from(TemporalAccessor).
- Определено в:
-
zonedDateTimeв интерфейсеChronology - Параметры:
-
temporal— объект даты и времени для преобразования, не null - Возвращает:
- дату и время ISO с часовым поясом, не null
- Вызывает исключение:
-
DateTimeException— если не удается создать дату и время - См. также:
zonedDateTime
public ZonedDateTime zonedDateTime(Instant instant, ZoneId zone)
Instant. Эквивалентно вызову ZonedDateTime.ofInstant(Instant, ZoneId).
- Определено в:
-
zonedDateTimeв интерфейсеChronology - Параметры:
-
instant— момент времени, на основе которого создается дата и время, не null -
zone— часовой пояс, не null - Возвращает:
- дату и время с часовым поясом, не null
- Вызывает исключение:
-
DateTimeException— если результат выходит за поддерживаемый диапазон
dateNow
public LocalDate dateNow()
Для получения текущей даты выполняется обращение к system clock в часовом поясе по умолчанию.
Использование этого метода не позволяет применять другие часы для тестирования, поскольку часы заданы жестко.
- Определено в:
-
dateNowв интерфейсеChronology - Возвращает:
- текущую локальную дату ISO по системным часам и в часовом поясе по умолчанию, не null
- Вызывает исключение:
-
DateTimeException— если не удается создать дату
dateNow
public LocalDate dateNow(ZoneId zone)
Для получения текущей даты выполняется обращение к system clock. Указание часового пояса позволяет избежать зависимости от часового пояса по умолчанию.
Использование этого метода не позволяет применять другие часы для тестирования, поскольку часы заданы жестко.
- Определено в:
-
dateNowв интерфейсеChronology - Параметры:
-
zone— идентификатор часового пояса, который следует использовать, не null - Возвращает:
- текущую локальную дату ISO по системным часам, не null
- Вызывает исключение:
-
DateTimeException— если не удается создать дату
dateNow
public LocalDate dateNow(Clock clock)
Для получения текущей даты — сегодняшнего дня — выполняется обращение к указанным часам. Этот метод позволяет использовать другие часы для тестирования. Другие часы можно создать с помощью dependency injection.
- Определено в:
-
dateNowв интерфейсеChronology - Параметры:
-
clock— часы, которые следует использовать, не null - Возвращает:
- текущую локальную дату ISO, не null
- Вызывает исключение:
-
DateTimeException— если не удается создать дату
isLeapYear
public boolean isLeapYear(long prolepticYear)
Этот метод применяет текущие правила високосных лет ко всей временной шкале. В общем случае год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 100, не являются високосными, за исключением годов, делящихся на 400.
Например, 1904 год является високосным, поскольку делится на 4. 1900 год не был високосным, поскольку делится на 100, однако 2000 год был високосным, поскольку делится на 400.
Вычисление является пролептическим: те же правила применяются к далекому будущему и далекому прошлому. С исторической точки зрения это неточно, но соответствует стандарту ISO-8601.
- Определено в:
-
isLeapYearв интерфейсеChronology - Параметры:
-
prolepticYear— пролептический год ISO для проверки - Возвращает:
- true, если год високосный; иначе false
prolepticYear
public int prolepticYear(Era era, int yearOfEra)
ChronologyЭтот метод объединяет эру и год в эре в единое поле пролептического года.
Если хроника активно использует эры, например JapaneseChronology, год в эре проверяется на соответствие эре. Для других хроник проверка необязательна.
- Определено в:
-
prolepticYearв интерфейсеChronology - Параметры:
-
era— эра подходящего для хроники типа, не null -
yearOfEra— год хроники в эре - Возвращает:
- пролептический год
eraOf
public IsoEra eraOf(int eraValue)
ChronologyЭра концептуально является самым крупным подразделением временной шкалы. В большинстве календарных систем есть одна эпоха, разделяющая временную шкалу на две эры. Однако в некоторых системах существует несколько эр, например по одной для периода правления каждого правителя. Точное значение определяется хроникой с учетом следующих ограничений.
Эра, действующая на 1970-01-01, должна иметь значение 1. Последующие эры должны иметь последовательно возрастающие значения. Предшествующие эры должны иметь последовательно убывающие значения. Каждая хроника должна использовать enum или аналогичный singleton для представления значений эр.
Этот метод возвращает единственный объект эры подходящего типа для указанного значения эры.
- Определено в:
-
eraOfв интерфейсеChronology - Параметры:
-
eraValue— значение эры - Возвращает:
- эру календарной системы, не null
eras
public List<Era> eras()
ChronologyВ большинстве календарных систем есть эра, в рамках которой имеет смысл понятие года. Если календарная система не поддерживает понятие эр, необходимо вернуть пустой список.
- Определено в:
-
erasв интерфейсеChronology - Возвращает:
- список эр хроники; может быть неизменяемым, не null
resolveDate
public LocalDate resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle)
ChronoField в дату в процессе разбора. Большинство реализаций TemporalField разрешаются с помощью метода resolve соответствующего поля. В отличие от них, класс ChronoField определяет поля, имеющие смысл только относительно хроники. Поэтому поля даты ChronoField разрешаются здесь в контексте конкретной хроники.
Экземпляры ChronoField в календарной системе ISO разрешаются следующим образом.
-
EPOCH_DAY— если поле присутствует, оно преобразуется вLocalDate, после чего все остальные поля даты сверяются с полученной датой. -
PROLEPTIC_MONTH— если поле присутствует, оно разделяется наYEARиMONTH_OF_YEAR. В строгом и интеллектуальном режимах поле проверяется. -
YEAR_OF_ERAиERA— если присутствуют оба поля, они объединяются вYEAR. В нестрогом режиме диапазонYEAR_OF_ERAне проверяется, а в интеллектуальном и строгом режимах проверяется. ДиапазонERAпроверяется во всех трех режимах. Если присутствует толькоYEAR_OF_ERA, а режим интеллектуальный или нестрогий, предполагается текущая эра (CE/AD). В строгом режиме эра не предполагается, аYEAR_OF_ERAостается без изменений. Если присутствует толькоERA, оно остается без изменений. -
YEAR,MONTH_OF_YEARиDAY_OF_MONTH— если присутствуют все три поля, они объединяются вLocalDate. Во всех трех режимах проверяетсяYEAR. В интеллектуальном и строгом режимах проверяются месяц и день, причем день проверяется в диапазоне от 1 до 31. В нестрогом режиме дата объединяется так, как если бы сначала создавалась дата первого января указанного года, затем добавлялась разница в месяцах, а после нее — разница в днях. В интеллектуальном режиме, если день месяца больше максимального числа дней в указанном году и месяце, он корректируется до последнего дня месяца. В строгом режиме три поля должны образовывать допустимую дату. -
YEARиDAY_OF_YEAR— если присутствуют оба поля, они объединяются вLocalDate. Во всех трех режимах проверяетсяYEAR. В нестрогом режиме дата объединяется так, как если бы сначала создавалась дата первого января указанного года, а затем добавлялась разница в днях. В интеллектуальном и строгом режимах эти два поля должны образовывать допустимую дату. -
YEAR,MONTH_OF_YEAR,ALIGNED_WEEK_OF_MONTHиALIGNED_DAY_OF_WEEK_IN_MONTH— если присутствуют все четыре поля, они объединяются вLocalDate. Во всех трех режимах проверяетсяYEAR. В нестрогом режиме дата объединяется так, как если бы сначала создавалась дата первого января указанного года, затем добавлялась разница в месяцах, затем разница в неделях и, наконец, разница в днях. В интеллектуальном и строгом режимах все четыре поля проверяются на соответствие внешним границам допустимых диапазонов. Затем дата объединяется так, как если бы сначала создавалась дата первого дня указанного года и месяца, а затем к ней добавлялось заданное количество недель и дней. В строгом режиме дополнительно проверяется, что корректировка дня и недели не изменила месяц. -
YEAR,MONTH_OF_YEAR,ALIGNED_WEEK_OF_MONTHиDAY_OF_WEEK— если присутствуют все четыре поля, они объединяются вLocalDate. Метод аналогичен описанному выше для годов, месяцев и недель вALIGNED_DAY_OF_WEEK_IN_MONTH. После обработки годов, месяцев и недель день недели корректируется до ближайшего следующего или текущего соответствующего дня недели. -
YEAR,ALIGNED_WEEK_OF_YEARиALIGNED_DAY_OF_WEEK_IN_YEAR— если присутствуют все три поля, они объединяются вLocalDate. Во всех трех режимах проверяетсяYEAR. В нестрогом режиме дата объединяется так, как если бы сначала создавалась дата первого января указанного года, затем добавлялась разница в неделях, а после нее — разница в днях. В интеллектуальном и строгом режимах все три поля проверяются на соответствие внешним границам допустимых диапазонов. Затем дата объединяется так, как если бы сначала создавалась дата первого дня указанного года, а затем к ней добавлялось заданное количество недель и дней. В строгом режиме дополнительно проверяется, что корректировка дня и недели не изменила год. -
YEAR,ALIGNED_WEEK_OF_YEARиDAY_OF_WEEK— если присутствуют все три поля, они объединяются вLocalDate. Метод аналогичен описанному выше для годов и недель вALIGNED_DAY_OF_WEEK_IN_YEAR. После обработки годов и недель день недели корректируется до ближайшего следующего или текущего соответствующего дня недели.
- Определено в:
-
resolveDateв интерфейсеChronology - Переопределено в:
-
resolveDateв классеAbstractChronology - Параметры:
-
fieldValues— карта полей и значений, которую можно изменять, не null -
resolverStyle— требуемый тип разрешения, не null - Возвращает:
- разрешенную дату; null, если недостаточно данных для создания даты
- Вызывает исключение:
-
DateTimeException— если не удается разрешить дату, обычно из-за противоречия во входных данных
range
public ValueRange range(ChronoField field)
Chronology Все поля можно представить в виде целого числа long. Этот метод возвращает объект, описывающий допустимый диапазон значений.
Обратите внимание, что результат описывает только минимальные и максимальные допустимые значения, и не следует придавать им слишком большое значение. Например, в диапазоне могут быть значения, недопустимые для этого поля.
Этот метод возвращает результат независимо от того, поддерживает ли хроника данное поле.
- Определено в:
-
rangeв интерфейсеChronology - Параметры:
-
field— поле, для которого требуется получить диапазон, не null - Возвращает:
- диапазон допустимых значений поля, не null
period
public Period period(int years, int months, int days)
Возвращается период, связанный с хроникой ISO и заданными годами, месяцами и днями. Дополнительные сведения см. в описании Period.
- Определено в:
-
periodв интерфейсеChronology - Параметры:
-
years— количество лет; может быть отрицательным -
months— количество лет; может быть отрицательным -
days— количество лет; может быть отрицательным - Возвращает:
- период ISO, не null
isIsoBased
public boolean isIsoBased()
IsoChronology — хроника на основе 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/IsoChronology.html