Spec-Zone.ru › OpenJDK 17

Пакет java.time.temporal

package java.time.temporal

Доступ к дате и времени с использованием полей и единиц, а также корректоров даты и времени.

Этот пакет расширяет базовый пакет, предоставляя дополнительные возможности для более мощных случаев использования. Поддержка включает:

  • Единицы даты и времени, такие как годы, месяцы, дни и часы
  • Поля даты и времени, такие как месяц года, день недели или час дня
  • Функции корректировки даты и времени
  • Разные определения недель

Поля и Единицы

Даты и время выражаются через поля и единицы. Единица используется для измерения промежутка времени, такого как годы, дни или минуты. Все единицы реализуют TemporalUnit. Набор известных единиц определен в ChronoUnit, например DAYS. Интерфейс единиц разработан для поддержки прикладных единиц.

Поле используется для выражения части более крупной даты и времени, такой как год, месяц года или секунда минуты. Все поля реализуют TemporalField. Набор известных полей определен в ChronoField, такие как HOUR_OF_DAY. Дополнительные поля определены в JulianFields, WeekFields и IsoFields. Интерфейс полей разработан для поддержки прикладных полей.

Этот пакет предоставляет инструменты, которые позволяют обращаться к единицам и полям даты и времени общим способом, наиболее подходящим для фреймворков. Temporal обеспечивает абстракцию для типов дат и времени, которые поддерживают поля. Его методы поддерживают получение значения поля, создание новой даты и времени с измененным значением поля и запросы дополнительной информации, обычно используемые для извлечения смещения или часового пояса.

Одно из применений полей в прикладном коде — получение полей, для которых нет удобного метода. Например, получение дня месяца достаточно часто, чтобы был метод в LocalDate под названием getDayOfMonth(). Однако для более необычных полей необходимо использовать поле. Например, date.get(ChronoField.ALIGNED_WEEK_OF_MONTH). Поля также предоставляют доступ к диапазону допустимых значений.

Корректировка и Запрос

Ключевой частью пространства проблем даты и времени является корректировка даты до нового, связанного значения, такого как «последний день месяца» или «следующая среда». Эти операции моделируются как функции, которые корректируют базу даты и времени. Функции реализуют TemporalAdjuster и работают с Temporal. Набор общих функций предоставляется в TemporalAdjusters. Например, чтобы найти первое вхождение дня недели после заданной даты, используйте TemporalAdjusters.next(DayOfWeek), например date.with(next(MONDAY)). Приложения также могут определять корректировщики, реализуя TemporalAdjuster.

Интерфейс TemporalAmount моделирует величины относительного времени.

В дополнение к корректировке даты и времени предоставляется интерфейс для выполнения запросов с помощью TemporalQuery. Наиболее распространенные реализации интерфейса запроса — это ссылки на методы. Методы from(TemporalAccessor) основных классов могут быть использованы, например, LocalDate::from или Month::from. Дополнительные реализации предоставляются в TemporalQueries в качестве статических методов. Приложения также могут определять запросы, реализуя TemporalQuery.

Недели

Разные языковые среды имеют разные определения недели. Например, в Европе неделя обычно начинается с понедельника, а в США — с воскресенья. Класс WeekFields моделирует это различие.

Система календаря ISO определяет дополнительное недельное деление лет. Это определяет год на основе целых недель с понедельника по понедельник. Это моделируется в IsoFields.

Спецификация пакета

Если не указано иное, передача null-аргумента в конструктор или метод любого класса или интерфейса в этом пакете приведет к выбрасыванию NullPointerException. Определение Javadoc «@param» используется для суммирования поведения null. «@throws NullPointerException» не документируется явно в каждом методе.

Все вычисления должны проверять переполнение чисел и выбрасывать либо ArithmeticException, либо DateTimeException.

Since:
1.8
Пакет Описание
java.time
Основной API для дат, времен, мгновений и продолжительностей.
java.time.chrono
Общий API для календарных систем, отличных от стандартной ISO.
java.time.format
Предоставляет классы для печати и разбора дат и времени.
java.time.zone
Поддержка часовых поясов и их правил.
Класс Описание
ChronoField
Стандартный набор полей.
ChronoUnit
Стандартный набор единиц периода дат.
IsoFields
Поля и единицы, специфичные для системы календаря ISO-8601, включая квартал года и год, базируемый на неделях.
JulianFields
Набор полей дат, предоставляющий доступ к дням Джулиана.
Temporal
Интерфейс фреймворка, определяющий чтение и запись доступа к объекту временной шкалы, например, дате, времени, смещению или их комбинации.
TemporalAccessor
Интерфейс фреймворка, определяющий только чтение доступа к объекту временной шкалы, например, дате, времени, смещению или их комбинации.
TemporalAdjuster
Стратегия для корректировки объекта временной шкалы.
TemporalAdjusters
Общие и полезные TemporalAdjusters.
TemporalAmount
Интерфейс фреймворка, определяющий величину времени, такую как «6 часов», «8 дней» или «2 года и 3 месяца».
TemporalField
Поле даты и времени, например, месяц года или минута часа.
TemporalQueries
Общие реализации TemporalQuery.
TemporalQuery<R>
Стратегия для запроса объекта временной шкалы.
TemporalUnit
Единица даты и времени, например, Дни или Часы.
UnsupportedTemporalTypeException
UnsupportedTemporalTypeException указывает, что ChronoField или ChronoUnit не поддерживаются для класса Temporal.
ValueRange
Диапазон допустимых значений для поля даты и времени.
WeekFields
Локализованные определения полей день недели, неделя месяца и неделя года.

© 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/temporal/package-summary.html

Spec-Zone.ru

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