Spec-Zone .ru
спецификации, руководства, описания, API
Пожалуйста, учтите, что спецификации и другая информация, содержащаяся здесь, не являются заключительными и могут быть изменены. Информация доступна для вас исключительно ради ознакомления.
 Платформа Java™
Стандарт Эд. 8

Проект сборка-b92

Пакет java.time.chrono

Универсальный API для календарных систем кроме значения по умолчанию ISO.

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

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

Универсальный API для календарных систем кроме значения по умолчанию ISO.

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

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

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

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

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

Пример

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

   // 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);
  

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

   // 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);
  

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

Если не указано иное, передача нулевого параметра конструктору или методу в любом class или интерфейсу в этом пакете вызовет a NullPointerException быть брошенным. Javadoc "@param" определение используется, чтобы суммировать нулевое поведение. "@throws NullPointerException"явно не документируется в каждый метод.

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

С тех пор:
JDK1.8
 Платформа Java™
Стандарт Эд. 8

Проект сборка-b92

Представьте ошибку или функцию
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.

Проект сборка-b92