Spec-Zone.ru › OpenJDK 17

Класс 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 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)
Получает зонное время-дату из другого объекта даты и времени.

Методы, объявленные в классе 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.of(String).

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

getCalendarType

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

Тип календаря — это идентификатор, определённый спецификацией Unicode Locale Data Markup Language (LDML). Его можно использовать для поиска хронологии с помощью 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

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, и режим — интеллектуальный или мягкий, предполагается текущая эра (н.э./до н.э.). В строгом режиме не предполагается никакая эра, и 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 в интерфейсе Chronology
Overrides:
resolveDate в классе AbstractChronology
Parameters:
fieldValues - карта полей со значениями, которая может быть обновлена, не null
resolverStyle - запрошенный тип разрешения, не null
Returns:
разрешенная дата, null, если недостаточно информации для создания даты
Throws:
DateTimeException - если дата не может быть разрешена, обычно из-за конфликта в входных данных

Диапазон

public ValueRange range(ChronoField field)
Описание скопировано из интерфейса: Chronology
Получает диапазон допустимых значений для указанного поля.

Все поля могут быть выражены как long целое число. Этот метод возвращает объект, описывающий допустимый диапазон для этого значения.

Обратите внимание, что результат описывает только минимальное и максимальное допустимые значения, и не следует извлекать из них слишком много информации. Например, могут быть значения в диапазоне, которые являются недопустимыми для поля.

Этот метод вернёт результат, поддерживает ли хронология поле или нет.

Определено в:
range в интерфейсе Chronology
Параметры:
field - поле, для которого нужно получить диапазон, не null
Возвращает:
диапазон допустимых значений для поля, не null

период

public Period period(int years, int months, int days)
Получает период для этой хронологии, основанный на годах, месяцах и днях.

Это возвращает период, привязанный к ISO-хронологии, используя указанные годы, месяцы и дни. См. Period для получения дополнительных сведений.

Определено в:
period в интерфейсе Chronology
Параметры:
years - количество лет, может быть отрицательным
months - количество месяцев, может быть отрицательным
days - количество дней, может быть отрицательным
Возвращает:
период ISO, не null

© 1993, 2021, 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/17/docs/api/java.base/java/time/chrono/IsoChronology.html

Spec-Zone.ru

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