Spec-Zone.ru › OpenJDK 27

Класс 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 final 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.
IsoEra eraOf(int eraValue)
Создаёт объект эры хронологии из числового значения.
List<Era> eras()
Получает список эр для хронологии.
String getCalendarType()
Получает тип календаря базовой календарной системы — 'iso8601'.
String getId()
Получает идентификатор хронологии — 'ISO'.
boolean isIsoBased()
IsoChronology — это хронология на основе ISO, поддерживающая поля из IsoFields, такие как DAY_OF_QUARTER и QUARTER_OF_YEAR.
boolean isLeapYear(long prolepticYear)
Проверяет, является ли год високосным согласно правилам пролептической календарной системы ISO.
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)
Преобразует разобранные значения ChronoField в дату во время разбора.
ZonedDateTime zonedDateTime(Instant instant, ZoneId zone)
Создаёт поясную дату и время ISO в этой хронологии из Instant.
ZonedDateTime zonedDateTime(TemporalAccessor temporal)
Создаёт поясную дату и время ISO на основе другого объекта даты и времени.

Методы, объявленные в классе AbstractChronology

compareTo, equals, hashCode, toString
Модификатор и тип Метод Описание
int compareTo(Chronology other)
Сравнивает эту хронологию с другой хронологией.
boolean equals(Object obj)
Проверяет, равна ли эта хронология другой хронологии.
int hashCode()
Хеш-код этой хронологии.
String toString()
Представляет эту хронологию в виде String, используя идентификатор хронологии.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
protected void finalize()
Устарело и подлежит удалению: этот элемент API будет удалён в будущей версии.
Финализация устарела и подлежит удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания, либо истечения заданного промежутка реального времени.

Методы, объявленные в интерфейсе Chronology

epochSecond, getDisplayName
Модификатор и тип Метод Описание
default long epochSecond(Era era, int yearOfEra, int month, int dayOfMonth, int hour, int minute, int second, ZoneOffset zoneOffset)
Получает количество секунд от начала эпохи 1970-01-01T00:00:00Z.
default String getDisplayName(TextStyle style, Locale locale)
Получает текстовое представление этой хронологии.

Подробное описание полей

INSTANCE

public static final IsoChronology INSTANCE
Экземпляр Singleton хронологии ISO.

Подробное описание методов

getId

public String getId()
Возвращает идентификатор хронологии — 'ISO'.

Идентификатор однозначно определяет Chronology. Его можно использовать для поиска Chronology с помощью Chronology.of(String).

Определено в:
getId в интерфейсе Chronology
Возвращает:
идентификатор хронологии — 'ISO'
См. также:
  • getCalendarType()

getCalendarType

public String getCalendarType()
Возвращает тип базовой календарной системы — 'iso8601'.

Тип календаря — это идентификатор, определенный спецификацией языка разметки данных локалей Unicode (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

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. Значения более поздних эр должны быть последовательными и возрастающими. Значения более ранних эр должны быть последовательными и убывающими. Каждая хронология должна использовать перечисление или аналогичный Singleton для представления значений эр.

Этот метод возвращает Singleton эры правильного типа для указанного значения эры.

Определено в:
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 — количество лет; может быть отрицательным
Возвращает:
период ISO, не null

isIsoBased

public boolean isIsoBased()
IsoChronology — это хронология на основе ISO, поддерживающая поля из IsoFields, например DAY_OF_QUARTER и QUARTER_OF_YEAR.
Определено в:
isIsoBased в интерфейсе Chronology
Возвращает:
true
Начиная с:
19
См. также:
  • IsoFields

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, где приводятся более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API