接口 | 描述 |
---|---|
ChronoLocalDate |
一个无时间,无时间的日期,用于任意年龄,用于高级全球化用例。
|
ChronoLocalDateTime<D extends ChronoLocalDate> |
在任意年代没有时区的日期时间,用于高级全球化用例。
|
Chronology |
用于组织和识别日期的日历系统。
|
ChronoPeriod |
基于日期的时间,例如任意年代的“3年,4个月和5天”,旨在用于高级全球化用例。
|
ChronoZonedDateTime<D extends ChronoLocalDate> |
具有时间序列的日期时间,以任意时间顺序排列,旨在用于高级全球化用例。
|
Era |
时代的时代。
|
类 | 描述 |
---|---|
AbstractChronology |
用于组织和识别日期的日历系统的抽象实现。
|
HijrahChronology |
Hijrah日历是支持伊斯兰教日历的农历。
|
HijrahDate |
日期在Hijrah日历系统。
|
IsoChronology |
ISO日历系统。
|
JapaneseChronology |
日本帝国历法系统。
|
JapaneseDate |
在日本帝国日历系统的日期。
|
JapaneseEra |
日本帝国日历系统的时代。
|
MinguoChronology |
国际日历系统。
|
MinguoDate |
在日语系统中的日期。
|
ThaiBuddhistChronology |
泰国佛教日历系统。
|
ThaiBuddhistDate |
在泰国佛教日历系统的日期。
|
Enum | 描述 |
---|---|
HijrahEra |
Hijrah日历系统中的一个时代。
|
IsoEra |
ISO日历系统中的一个时代。
|
MinguoEra |
国际日历系统中的一个时代。
|
ThaiBuddhistEra |
泰国佛教日历系统的时代。
|
除默认ISO之外的日历系统的通用API。
主要API基于ISO-8601中定义的日历系统。 但是,还有其他日历系统,这个包提供了基本的支持。 备用日历在java.time.chrono
包中提供。
日历系统由Chronology
界面定义,而日历系统中的日期由ChronoLocalDate
界面定义。
意图是应用程序尽可能使用主API,包括从持久数据存储(如数据库)读取和写入代码,以及通过网络发送日期和时间。 然后在用户界面级别使用“计时”类来处理本地化的输入/输出。 有关问题的全面讨论,请参阅ChronoLocalDate
。
在应用程序中使用非ISO日历系统会引起显着的额外复杂性。 确保中的警告和建议ChronoLocalDate
已经与“计时”接口之前,请先阅读。
支持的日历系统包括:
此示例列出了所有可用日历的今天日期。
// 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);
除非另有说明,否则将null参数传递给此程序包中任何类或接口中的构造函数或方法将导致抛出NullPointerException
。 Javadoc“@param”定义用于总结空行为。 “@throws NullPointerException
”没有在每个方法中明确记录。
所有计算应检查数字溢出,并抛出ArithmeticException
或DateTimeException
。