Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
Date-Time API 的核心是 java.time 包。java.time 中定义的类将其日历系统基于 ISO 日历,这是表示日期和时间的世界标准。ISO 日历遵循外推格里历(proleptic 公历)规则。公历于 1582 年推出;在 proleptic 公历中,日期从那时起向后延伸,以创建一致的统一时间线并简化日期计算。
本课程包含以下主题:
本节比较人类时间和机器时间的概念,提供了 java.time 包中基于时间的主要类的表。
本节讨论定义星期几(DayOfWeek)的枚举和定义月份的枚举(Month)。
此部分显示仅处理日期的基于时间的类,没有时区或时区。这四个类是 LocalDate,YearMonth,MonthDay 和 Year。
本节介绍 LocalTime 和 LocalDateTime 类,它们分别处理时间,日期和时间,但没有时区。
本节讨论存储时区(或时区偏移)信息的基于时间的类,ZonedDateTime,OffsetDateTime 和 OffsetTime。还讨论了支持类 ZoneId,ZoneRules 和 ZoneOffset。
本节讨论 Instant 类,它表示时间轴上的瞬时时刻。
本节概述了如何使用预定义格式化程序格式化和解析日期和时间值。
本节概述了 java.time.temporal 包,它支持时间类,字段(TemporalField 和 ChronoField)和单位( TemporalUnit 和 ChronoUnit)。本节还介绍了如何使用时间调整器来获取调整后的时间值,例如“4 月 11 日之后的第一个星期二”,以及如何执行时间查询。
本节介绍如何使用 Period 和 Duration 类以及 ChronoUnit.between 方法计算时间量。
本节简要概述了 Clock 类。你可以使用此类为系统时钟提供备用时钟。
本节介绍如何将 ISO 日历系统中的日期转换为非 ISO 日历系统中的日期,例如 JapaneseDate 或 ThaiBuddhistDate。
本节提供了有关如何将旧的 java.util.Date 和 java.util.Calendar 代码转换为 Date-Time API 的一些提示。
本节提供标准日历课程的摘要。