Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
有关Java SE 9及后续版本中更新的语言功能的摘要,请参阅Java语言更改。
有关所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息,请参阅JDK发布说明。
时间似乎是一个简单的主题;即使是一只廉价的手表也可以提供相对准确的日期和时间。然而,仔细观察后,您会意识到微妙的复杂性和许多影响您对时间的理解的因素。例如,将一个月加到1月31日的结果对闰年和其他年份是不同的。时区也增加了复杂性。例如,一个国家可能会在短时间内或多次一年内进入和退出夏令时,或者对于某一年完全跳过夏令时。
日期时间API使用ISO-8601中定义的日历系统作为默认日历。此日历基于公历系统,在全球范围内被用作事实上的日期和时间表示标准。日期时间API的核心类名为LocalDateTime、ZonedDateTime和OffsetDateTime。所有这些都使用ISO日历系统。如果您想使用另一种日历系统,如伊斯兰历或泰国佛教历,java.time.chrono包允许您使用其中一个预定义的日历系统。或者您可以创建自己的日历系统。
日期时间API使用Unicode通用语言环境数据存储库(CLDR)。该存储库支持世界上的语言,并包含全球最大的可用区域设置数据集合。该存储库中的信息已本地化为数百种语言。日期时间API还使用时区数据库(TZDB)。该数据库提供有关自1970年以来全球每个时区更改的信息,并提供主要时区自该概念引入以来的历史。