Класс 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.of(String).
- Определено в:
-
getIdв интерфейсеChronology - Возвращает:
- идентификатор хронологии — 'ISO'
- См. также:
getCalendarType
public String getCalendarType()
Тип календаря — идентификатор, определённый спецификацией Unicode Locale Data Markup Language (LDML). Его можно использовать для поиска хронологии с помощью 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)
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. День недели корректируется как следующий или такой же совпадающий день недели, как только года и недели были обработаны.
- 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
isIsoBased
public boolean isIsoBased()
IsoChronology является хронологией ISO, которая поддерживает поля в IsoFields, такие как DAY_OF_QUARTER и QUARTER_OF_YEAR.- Определено в:
-
isIsoBasedв интерфейсеChronology - Возвращает:
true- С:
- 19
- См. также:
© 1993, 2023, 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/21/docs/api/java.base/java/time/chrono/IsoChronology.html