Класс 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 на основе другого объекта даты и времени. |
Методы, объявленные в классе AbstractChronology
compareTo, equals, hashCode, toString | Модификатор и тип | Метод | Описание |
|---|---|---|
int |
compareTo |
Сравнивает эту хронологию с другой хронологией. |
boolean |
equals |
Проверяет, равна ли эта хронология другой хронологии. |
int |
hashCode() |
Хеш-код этой хронологии. |
String |
toString() |
Представляет эту хронологию в виде String, используя идентификатор хронологии. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело и подлежит удалению: этот элемент API будет удалён в будущей версии. Финализация устарела и подлежит удалению в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания, либо истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания, либо истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе Chronology
epochSecond, getDisplayName | Модификатор и тип | Метод | Описание |
|---|---|---|
default long |
epochSecond |
Получает количество секунд от начала эпохи 1970-01-01T00:00:00Z. |
default String |
getDisplayName |
Получает текстовое представление этой хронологии. |
Подробное описание полей
INSTANCE
public static final IsoChronology INSTANCE
Подробное описание методов
getId
public String getId()
Идентификатор однозначно определяет Chronology. Его можно использовать для поиска Chronology с помощью Chronology.of(String).
- Определено в:
-
getIdв интерфейсеChronology - Возвращает:
- идентификатор хронологии — 'ISO'
- См. также:
getCalendarType
public String getCalendarType()
Тип календаря — это идентификатор, определенный спецификацией языка разметки данных локалей Unicode (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. Значения более поздних эр должны быть последовательными и возрастающими. Значения более ранних эр должны быть последовательными и убывающими. Каждая хронология должна использовать перечисление или аналогичный Singleton для представления значений эр.
Этот метод возвращает 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.