Класс 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<Era> |
eras() |
Получает список эр для хронологии. |
String |
getCalendarType() |
Получает тип календаря базовой системы календаря - 'iso8601'. |
String |
getId() |
Получает идентификатор хронологии - 'ISO'. |
boolean |
isLeapYear |
Проверяет, является ли год високосным годом в соответствии с правилами системы пролептического календаря ISO. |
LocalDateTime |
localDateTime |
Получает локальное время-дату ISO из другого объекта даты и времени. |
Period |
period |
Получает период для этой хронологии на основе лет, месяцев и дней. |
int |
prolepticYear |
Вычисляет пролептический год, учитывая эру и год эры. |
ValueRange |
range |
Получает диапазон допустимых значений для указанного поля. |
LocalDate |
resolveDate |
Разрешает проанализированные ChronoField значения в дату во время разбора. |
ZonedDateTime |
zonedDateTime |
Получает зонное время-дату ISO в этой хронологии из Instant. |
ZonedDateTime |
zonedDateTime |
Получает зонное время-дату из другого объекта даты и времени. |
Методы, объявленные в классе 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, и режим — интеллектуальный или мягкий, предполагается текущая эра (н.э./до н.э.). В строгом режиме не предполагается никакая эра, и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