Spec-Zone.ru › OpenJDK 24

Класс IsoChronology

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

Этот хронологический класс определяет правила системы календаря 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(int prolepticYear, int month, int dayOfMonth)
Получает локальную дату ISO из пролептического года, месяца и дня месяца.
LocalDate date(Era era, int yearOfEra, int month, int dayOfMonth)
Получает локальную дату ISO из эры, года эры, месяца и дня месяца.
LocalDate date(TemporalAccessor temporal)
Получает локальную дату ISO из другого объекта даты и времени.
LocalDate dateEpochDay(long epochDay)
Получает локальную дату ISO из дня эпохи.
LocalDate dateNow()
Получает текущую локальную дату ISO из системных часов в часовом поясе по умолчанию.
LocalDate dateNow(Clock clock)
Получает текущую локальную дату ISO из указанных часов.
LocalDate dateNow(ZoneId zone)
Получает текущую локальную дату ISO из системных часов в указанном часовом поясе.
LocalDate dateYearDay(int prolepticYear, int dayOfYear)
Получает локальную дату ISO из пролептического года и дня года.
LocalDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
Получает локальную дату ISO из эры, года эры и дня года.
long epochSecond(int prolepticYear, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Получает количество секунд от эпохи 1970-01-01T00:00:00Z.
IsoEra eraOf(int eraValue)
Создаёт объект эры хронологии из числового значения.
List<Era> eras()
Получает список эр для хронологии.
String getCalendarType()
Получает тип календаря базовой системы календаря - 'iso8601'.
String getId()
Получает идентификатор хронологии - 'ISO'.
boolean isIsoBased()
IsoChronology это хронология, основанная на ISO, которая поддерживает поля в IsoFields, такие как DAY_OF_QUARTER и QUARTER_OF_YEAR.
boolean isLeapYear(long prolepticYear)
Проверяет, является ли год високосным, согласно правилам системы пролептического календаря ISO.
LocalDateTime localDateTime(TemporalAccessor temporal)
Получает локальное время ISO из другого объекта даты и времени.
Period period(int years, int months, int days)
Получает период для этой хронологии на основе лет, месяцев и дней.
int prolepticYear(Era era, int yearOfEra)
Вычисляет пролептический год, заданный эрой и годом эры.
ValueRange range(ChronoField field)
Получает диапазон допустимых значений для указанного поля.
LocalDate resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle)
Разрешает проанализированные ChronoField значения в дату во время разбора.
ZonedDateTime zonedDateTime(Instant instant, ZoneId zone)
Получает зонную дату и время ISO в этой хронологии из Instant.
ZonedDateTime zonedDateTime(TemporalAccessor temporal)
Получает зонную дату и время 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
Экземпляр-синглтон хронологии ISO.

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

getId

public String getId()
Получает идентификатор хронологии — 'ISO'.

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

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

getCalendarType

public String getCalendarType()
Получает тип календаря для базовой системы календаря — 'iso8601'.

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

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

date

public LocalDate date(Era era, int yearOfEra, int month, int dayOfMonth)
Возвращает локальную дату ISO по эпохе, году, месяцу и дню месяца.
Определено в:
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)
Возвращает локальную дату ISO по пролептическому году, месяцу и дню месяца.

Эквивалентно 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)
Возвращает локальную дату ISO по эпохе, году и дню года.
Определено в:
dateYearDay в интерфейсе Chronology
Параметры:
era — эпоха ISO, не null
yearOfEra — год ISO
dayOfYear — день года ISO
Возвращает:
локальную дату ISO, не null
Исключения:
DateTimeException — если дату создать нельзя

dateYearDay

public LocalDate dateYearDay(int prolepticYear, int dayOfYear)
Возвращает локальную дату ISO по пролептическому году и дню года.

Эквивалентно LocalDate.ofYearDay(int, int).

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

dateEpochDay

public LocalDate dateEpochDay(long epochDay)
Возвращает локальную дату ISO по дню эпохи.

Эквивалентно LocalDate.ofEpochDay(long).

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

date

public LocalDate date(TemporalAccessor temporal)
Возвращает локальную дату ISO из другого объекта даты и времени.

Эквивалентно LocalDate.from(TemporalAccessor).

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

epochSecond

public long epochSecond(int prolepticYear, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Получает количество секунд с эпохи 1970-01-01T00:00:00Z.

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

Определено в:
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)
Возвращает локальную дату-время ISO из другого объекта даты и времени.

Эквивалентно LocalDateTime.from(TemporalAccessor).

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

zonedDateTime

public ZonedDateTime zonedDateTime(TemporalAccessor temporal)
Возвращает локальное часовое время ISO из другого объекта даты и времени.

Эквивалентно ZonedDateTime.from(TemporalAccessor).

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

zonedDateTime

public ZonedDateTime zonedDateTime(Instant instant, ZoneId zone)
Возвращает локальное часовое время ISO по мгновению времени.

Эквивалентно ZonedDateTime.ofInstant(Instant, ZoneId).

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

dateNow

public LocalDate dateNow()
Возвращает текущую локальную дату ISO из системных настроек по умолчанию.

Получает текущую дату, используя system clock в стандартном часовом поясе.

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

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

dateNow

public LocalDate dateNow(ZoneId zone)
Получает текущую локальную дату ISO из системных часов в указаной часовой зоне.

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

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

Specified by:
dateNow в интерфейсе Chronology
Parameters:
zone - идентификатор часовой зоны для использования, не null
Returns:
текущая локальная дата ISO, использующая системные часы, не null
Throws:
DateTimeException - если невозможно создать дату

dateNow

public LocalDate dateNow(Clock clock)
Получает текущую локальную дату ISO из указанных часов.

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

Specified by:
dateNow в интерфейсе Chronology
Parameters:
clock - используемые часы, не null
Returns:
текущая локальная дата ISO, не null
Throws:
DateTimeException - если невозможно создать дату

isLeapYear

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

Этот метод применяет текущие правила високосных годов на всей временной шкале. В общем случае, год является високосным, если он делится на четыре без остатка. Однако года, делящиеся на 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
END_OF_DOCUMENT_MARKER

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:
resolveDate in interface Chronology
Overrides:
resolveDate in class AbstractChronology
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:
range in interface Chronology
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:
period in interface Chronology
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()
Эта хронология основана на ISO, поддерживает поля в IsoFields, такие как DAY_OF_QUARTER и QUARTER_OF_YEAR.
Specified by:
isIsoBased in interface Chronology
Returns:
true
Since:
19
See Also:
  • IsoFields

© 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

Spec-Zone.ru

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