Класс 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​(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.

String getCalendarType()

Получение типа календаря базовой системы календаря - 'iso8601'.

String getId()

Получение идентификатора хронологии - 'ISO'.

boolean isLeapYear​(long prolepticYear)

Проверка, является ли год високосным, согласно правилам пролептической системы календаря ISO.

LocalDateTime localDateTime​(TemporalAccessor temporal)

Получение даты и времени ISO из другого объекта даты и времени.

Period period​(int years, int months, int days)

Получение периода для этой хронологии на основе лет, месяцев и дней.

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, eraOf, eras, getDisplayName, prolepticYear, range

Поля

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 в этой хронологии из 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

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. Если режим мягкий, то дата объединяется так, как если бы она была создана 1 января текущего года, затем добавляется разница в месяцах, а затем разница в днях. Если режим интеллектуальный, и день месяца больше максимального для года-месяца, то день месяца корректируется до последнего дня месяца. Если режим строгий, то эти три поля должны образовать допустимую дату.
  • YEAR и DAY_OF_YEAR - Если оба присутствуют, то они объединяются для формирования LocalDate. Во всех трех режимах валидируется YEAR. Если режим мягкий, то дата объединяется так, как если бы она была создана 1 января текущего года, затем добавляется разница в днях. Если режим интеллектуальный или строгий, то эти два поля должны образовать допустимую дату.
  • YEAR, MONTH_OF_YEAR, ALIGNED_WEEK_OF_MONTH и ALIGNED_DAY_OF_WEEK_IN_MONTH - Если все четыре присутствуют, то они объединяются для формирования LocalDate. Во всех трех режимах валидируется YEAR. Если режим мягкий, то дата объединяется так, как если бы она была создана 1 января текущего года, затем добавляется разница в месяцах, затем разница в неделях, затем в днях. Если режим интеллектуальный или строгий, то все четыре поля валидируются до своих внешних диапазонов. Затем дата объединяется так, как если бы она была создана 1-го числа запрошенного года и месяца, а затем добавляется количество недель и дней, чтобы достичь их значений. Если режим строгий, дата дополнительно валидируется, чтобы проверить, что корректировка дня и недели не изменила месяц.
  • 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. Если режим мягкий, то дата объединяется так, как если бы она была создана 1 января текущего года, затем добавляется разница в неделях, затем в днях. Если режим интеллектуальный или строгий, то все три поля валидируются до своих внешних диапазонов. Затем дата объединяется так, как если бы она была создана в первый день запрошенного года, а затем добавляется количество недель и дней, чтобы достичь их значений. Если режим строгий, дата дополнительно валидируется, чтобы проверить, что корректировка дня и недели не изменила год.
  • 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 - если дата не может быть разрешена, обычно из-за конфликта во входных данных

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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/chrono/IsoChronology.html

Spec-Zone .ru
спецификации, руководства, описания, API