See: Description
Class | Description |
---|---|
HijrahChrono |
The Hijrah calendar system.
|
JapaneseChrono |
The Japanese Imperial calendar system.
|
MinguoChrono |
The Minguo calendar system.
|
ThaiBuddhistChrono |
The Thai Buddhist calendar system.
|
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.
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);
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
.