Класс 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(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) | Разрешает значения, проанализированные в |
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
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