Класс 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 IsoChronology |
INSTANCE Единственный экземпляр хронологии ISO. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
LocalDate |
date(Era era,
int yearOfEra,
int month,
int dayOfMonth) Получение даты ISO локального времени по полям эры, года-эры, месяца-года и дня-месяца. |
LocalDate |
date(int prolepticYear,
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(Era era,
int yearOfEra,
int dayOfYear) Получение даты ISO локального времени по полям эры, года-эры и дня-года. |
LocalDate |
dateYearDay(int prolepticYear,
int dayOfYear) Получение даты ISO локального времени по полям пролептического года и дня-года. |
IsoEra |
eraOf(int eraValue) Создание объекта эры хронологии из числового значения. |
List<Era> |
eras() Получение списка эр для хронологии. |
String |
getCalendarType() Получение типа календаря базовой системы календаря - 'iso8601'. |
String |
getId() Получение идентификатора хронологии - 'ISO'. |
boolean |
isLeapYear(long prolepticYear) Проверка, является ли год високосным, согласно правилам системы календаря ISO proleptic. |
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) Разрешение проанализированных |
ZonedDateTime |
zonedDateTime(Instant instant,
ZoneId zone) Получение даты и времени ISO с часовым поясом в этой хронологии из |
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
from, 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)
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 в этой хронологии из Instant.
Эквивалентно 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. Указание часового пояса исключает зависимость от часового пояса по умолчанию.
Использование этого метода не позволит использовать альтернарные часы для тестирования, так как часы жестко закодированы.
- Определено в:
-
dateNowв интерфейсеChronology - Параметры:
-
zone- идентификатор часового пояса, не null - Возвращает:
- текущую локальную дату ISO с использованием системных часов, не null
- Исключения:
-
DateTimeException- если дата не может быть создана
dateNow
public LocalDate dateNow(Clock clock)
Получает текущую локальную дату ISO из указанных часов.
Для получения текущей даты (сегодня) будет запрошен указанный объект часов. Использование этого метода позволяет использовать альтернативные часы для тестирования. Альтернативные часы могут быть введены с помощью dependency injection.
- Определено в:
-
dateNowв интерфейсеChronology - Параметры:
-
clock- используемые часы, не null - Возвращает:
- текущая локальная дата ISO, не null
- Исключения:
-
DateTimeException- если дата не может быть создана
isLeapYear
public boolean isLeapYear(long prolepticYear)
Проверяет, является ли год високосным годом в соответствии с правилами системы ISO пролептического календаря.
Этот метод применяет текущие правила для високосных годов на протяжении всей временной шкалы. В целом, год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 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. Более поздние эры должны иметь последовательно более высокие значения. Более ранние эры должны иметь последовательно более низкие значения. Каждая хронология должна ссылаться на перечисление или аналогичный синглтон для предоставления значений эр.
Этот метод возвращает синглтон эры соответствующего типа для указанного значения эры.
- Указано в:
-
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- количество дней, может быть отрицательным - Возвращает:
- период в терминах этой хронологии, не null
© 1993, 2020, 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.