1-February-2013 09:45

Package java.time.calendar

Support for calendar systems other than the default ISO.

See: Description

Package java.time.calendar Description

Support for calendar systems other than the default ISO.

The main API is based around the calendar system defined in ISO-8601. This package provides support for alternate systems.

The supported calendar systems includes:

It is intended that applications use the main API whenever possible, including code to read and write from a persistent data store, such as a database, and to send dates and times across a network. This package is then used at the user interface level to deal with localized input/output. See ChronoLocalDate for a full discussion of the issues.

Example

This example creates and uses a date in a non-ISO calendar system.

   // Print the Thai Buddhist date
       ChronoLocalDate<ThaiBuddhistChrono> now1 = ThaiBuddhistChrono.INSTANCE.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.getChrono().getId(),
                 dow, day, month, year);

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

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

Package specification

Unless otherwise noted, passing a null argument to a constructor or method in any class or interface in this package will cause a NullPointerException to be thrown. The Javadoc "@param" definition is used to summarise the null-behavior. The "@throws NullPointerException" is not explicitly documented in each method.

All calculations should check for numeric overflow and throw either an ArithmeticException or a DateTimeException.

Since:
JDK1.8
1-February-2013 09:45