Spec-Zone.ru › OpenJDK 8

Пакет java.time.chrono

Общий API для календарных систем, отличных от стандартной ISO.

См.: Описание

Интерфейс Описание
ChronoLocalDate

Дата без времени суток или часового пояса в произвольной хронологии, предназначенная для продвинутых случаев глобализации.

ChronoLocalDateTime<D extends ChronoLocalDate>

Дата и время без часового пояса в произвольной хронологии, предназначенная для продвинутых случаев глобализации.

Chronology

Календарная система, используемая для организации и идентификации дат.

ChronoPeriod

Временной интервал, основанный на датах, например, '3 года, 4 месяца и 5 дней' в произвольной хронологии, предназначенная для продвинутых случаев глобализации.

ChronoZonedDateTime<D extends ChronoLocalDate>

Дата и время с часовым поясом в произвольной хронологии, предназначенная для продвинутых случаев глобализации.

Era

Эра временной линии.

Класс Описание
AbstractChronology

Абстрактная реализация календарной системы, используемой для организации и идентификации дат.

HijrahChronology

Календарь Хиджры — лунный календарь, поддерживающий исламские календари.

HijrahDate

Дата в календарной системе Хиджры.

IsoChronology

Календарная система ISO.

JapaneseChronology

Японская имперская календарная система.

JapaneseDate

Дата в японской имперской календарной системе.

JapaneseEra

Эра в японской имперской календарной системе.

MinguoChronology

Календарная система Мингуо.

MinguoDate

Дата в календарной системе Мингуо.

ThaiBuddhistChronology

Тайский буддийский календарный цикл.

ThaiBuddhistDate

Дата в тайской буддийской календарной системе.

Перечисление Описание
HijrahEra

Эра в календарной системе Хиджры.

IsoEra

Эра в календарной системе ISO.

MinguoEra

Эра в календарной системе Мингуо.

ThaiBuddhistEra

Эра в тайской буддийской календарной системе.

Описание пакета java.time.chrono

Общий API для календарных систем, отличных от стандартной ISO.

Основной API базируется на календарной системе, определенной в ISO-8601. Однако существуют и другие календарные системы, и этот пакет предоставляет базовую поддержку для них. Альтернативные календари предоставлены в пакете java.time.chrono.

Календарная система определяется интерфейсом Chronology, а дата в календарной системе определяется интерфейсом ChronoLocalDate.

Ожидается, что приложения будут использовать основной API по возможности, включая код для чтения и записи из постоянного хранилища данных, такого как база данных, и для отправки дат и времени по сети. Классы "chrono" затем используются на уровне пользовательского интерфейса для работы с локальным вводом/выводом. Подробное обсуждение этих вопросов см. в ChronoLocalDate.

Использование не-ISO календарных систем в приложении приводит к существенному усложнению. Убедитесь, что вы ознакомились с предупреждениями и рекомендациями в ChronoLocalDate перед работой с интерфейсами "chrono".

Поддерживаемые календарные системы включают:

  • Hijrah calendar
  • Japanese calendar
  • Minguo calendar
  • Thai Buddhist calendar

Пример

Этот пример выводит сегодняшнюю дату для всех доступных календарей.

// Enumerate the list of available calendars and print todays date for each.
       Set<Chronology> chronos = Chronology.getAvailableChronologies();
       for (Chronology chrono : chronos) {
           ChronoLocalDate date = chrono.dateNow();
           System.out.printf("   %20s: %s%n", chrono.getId(), date.toString());
       }

Этот пример создает и использует дату в заданной не-ISO календарной системе.

// Print the Thai Buddhist date
       ChronoLocalDate now1 = Chronology.of("ThaiBuddhist").dateNow();
       int day = now1.get(ChronoField.DAY_OF_MONTH);
       int dow = now1.get(ChronoField.DAY_OF_WEEK);
       int month = now1.get(ChronoField.MONTH_OF_YEAR);
       int year = now1.get(ChronoField.YEAR);
       System.out.printf("  Today is %s %s %d-%s-%d%n", now1.getChronology().getId(),
                 dow, day, month, year);
   // Print today's date and the last day of the year for the Thai Buddhist Calendar.
       ChronoLocalDate first = now1
                 .with(ChronoField.DAY_OF_MONTH, 1)
                 .with(ChronoField.MONTH_OF_YEAR, 1);
       ChronoLocalDate last = first
                 .plus(1, ChronoUnit.YEARS)
                 .minus(1, ChronoUnit.DAYS);
       System.out.printf("  %s: 1st of year: %s; end of year: %s%n", last.getChronology().getId(),
                 first, last);

Этот пример создает и использует дату в определенной тайской буддийской календарной системе.

// Print the Thai Buddhist date
       ThaiBuddhistDate now1 = ThaiBuddhistDate.now();
       int day = now1.get(ChronoField.DAY_OF_MONTH);
       int dow = now1.get(ChronoField.DAY_OF_WEEK);
       int month = now1.get(ChronoField.MONTH_OF_YEAR);
       int year = now1.get(ChronoField.YEAR);
       System.out.printf("  Today is %s %s %d-%s-%d%n", now1.getChronology().getId(),
                 dow, day, month, year);

   // Print today's date and the last day of the year for the Thai Buddhist Calendar.
       ThaiBuddhistDate first = now1
                 .with(ChronoField.DAY_OF_MONTH, 1)
                 .with(ChronoField.MONTH_OF_YEAR, 1);
       ThaiBuddhistDate last = first
                 .plus(1, ChronoUnit.YEARS)
                 .minus(1, ChronoUnit.DAYS);
       System.out.printf("  %s: 1st of year: %s; end of year: %s%n", last.getChronology().getId(),
                 first, last);

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

За исключением случаев, специально оговоренных, передача null-аргумента в конструктор или метод любого класса или интерфейса в этом пакете вызовет исключение NullPointerException. Описание поведения null-аргумента содержится в Javadoc-документации ("@param"). Исключение NullPointerException явно не документируется в каждом методе.

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

Since:
JDK1.8

© 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.

Spec-Zone.ru

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