Класс 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 день. Месяц 2 имеет 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 из другого объекта даты и времени. |
Методы, объявленные в классе java.time.chrono.AbstractChronology
compareTo, equals, hashCode, toString
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.time.chrono.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)
Эквивалентно 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 для получения текущей даты. Указание часовой зоны позволяет избежать зависимости от часовой зоны по умолчанию.
Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, поскольку часы жестко закодированы.
- Specified by:
-
dateNowв интерфейсеChronology - Parameters:
-
zone- идентификатор часовой зоны для использования, не null - Returns:
- текущая локальная дата ISO, использующая системные часы, не null
- Throws:
-
DateTimeException- если невозможно создать дату
dateNow
public LocalDate dateNow(Clock clock)
Это обратится к указанным часам для получения текущей даты — сегодняшней. Использование этого метода позволяет использовать альтернативные часы для тестирования. Альтернативные часы могут быть добавлены с помощью dependency injection.
- Specified by:
-
dateNowв интерфейсеChronology - Parameters:
-
clock- используемые часы, не null - Returns:
- текущая локальная дата ISO, не null
- Throws:
-
DateTimeException- если невозможно создать дату
isLeapYear
public boolean isLeapYear(long prolepticYear)
Этот метод применяет текущие правила високосных годов на всей временной шкале. В общем случае, год является високосным, если он делится на четыре без остатка. Однако года, делящиеся на 100, не являются високосами, за исключением годов, делящихся на 400, которые являются.
Например, 1904 является високосным годом, так как он делится на 4. 1900 не был високосным годом, так как он делится на 100, однако 2000 был високосным годом, так как он делится на 400.
Вычисление является пролептическим — применяется к далёкому будущему и далёкому прошлому. Исторически это неточно, но это правильно для стандарта ISO-8601.
- Specified by:
-
isLeapYearв интерфейсеChronology - Parameters:
-
prolepticYear- проверяемый пролептический год ISO - Returns:
- true, если год високосный, false в противном случае
prolepticYear
public int prolepticYear(Era era, int yearOfEra)
ChronologyЭто объединяет эру и год эры в единственное поле пролептического года.
Если хронология активно использует эры, например JapaneseChronology, то год эры будет проверен по отношению к эре. Для других хронологий проверка необязательна.
- Specified by:
-
prolepticYearв интерфейсеChronology - Parameters:
-
era- эра правильного типа для хронологии, не null -
yearOfEra- год хронологической эры - Returns:
- пролептический год
eraOf
public IsoEra eraOf(int eraValue)
ChronologyЭра, по сути, является самой большой частью временной шкалы. Большинство систем календарей имеют одну эпоху, разделяющую временную шкалу на две эры. Однако некоторые имеют несколько эр, например, по одному для правления каждого лидера. Точное значение определяется хронологией в соответствии со следующими ограничениями.
Эра, используемая в 1970-01-01, должна иметь значение 1. Поздние эры должны иметь последовательно более высокие значения. Более ранние эры должны иметь последовательно более низкие значения. Каждая хронология должна ссылаться на перечисление или аналогичный синглтон для предоставления значений эры.
Этот метод возвращает синглтон эры правильного типа для указанного значения эры.
- Specified by:
-
eraOfв интерфейсеChronology - Parameters:
-
eraValue- значение эры - Returns:
- эра системы календаря, не null
eras
public List<Era> eras()
ChronologyБольшинство систем календарей имеют эру, в рамках которой имеет смысл год. Если система календаря не поддерживает концепцию эр, должен возвращаться пустой список.
- Specified by:
-
erasв интерфейсеChronology - Returns:
- список эр для хронологии, может быть неизменяемым, не null
resolveDate
public LocalDate resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle)
Большинство реализаций 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, а режим "умный" или "допуска", то предполагается текущая эра (н.э./до н.э.). В строгом режиме эра не предполагается, а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. День недели корректируется как следующий или тот же соответствующий день недели после обработки годов и недель.
- Specified by:
-
resolveDatein interfaceChronology - Overrides:
-
resolveDatein classAbstractChronology - Parameters:
-
fieldValues- the map of fields to values, which can be updated, not null -
resolverStyle- the requested type of resolve, not null - Returns:
- the resolved date, null if insufficient information to create a date
- Throws:
-
DateTimeException- if the date cannot be resolved, typically because of a conflict in the input data
range
public ValueRange range(ChronoField field)
Chronology Все поля могут быть выражены как целое число long. Этот метод возвращает объект, описывающий допустимый диапазон для этого значения.
Обратите внимание, что результат описывает только минимальное и максимальное допустимые значения, и не следует слишком глубоко вникать в них. Например, могут существовать значения в диапазоне, которые не являются допустимыми для поля.
Этот метод вернёт результат, поддерживает ли хронология поле или нет.
- Specified by:
-
rangein interfaceChronology - Parameters:
-
field- the field to get the range for, not null - Returns:
- the range of valid values for the field, not null
period
public Period period(int years, int months, int days)
Это возвращает период, связанный с хронологией ISO, используя указанные годы, месяцы и дни. Подробнее см. Period.
- Specified by:
-
periodin interfaceChronology - Parameters:
-
years- the number of years, may be negative -
months- the number of years, may be negative -
days- the number of years, may be negative - Returns:
- the ISO period, not null
isIsoBased
public boolean isIsoBased()
IsoFields, такие как DAY_OF_QUARTER и QUARTER_OF_YEAR.- Specified by:
-
isIsoBasedin interfaceChronology - Returns:
true- Since:
- 19
- See Also:
© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/chrono/IsoChronology.html