课程:日期时间概述

原文: https://docs.oracle.com/javase/tutorial/datetime/overview/index.html

时间似乎是一个简单的主题;即便是便宜的手表也能提供合理准确的日期和时间。但是,通过仔细研究,您会发现微妙的复杂性和许多影响您理解时间的因素。例如,在 1 月 31 日添加一个月的结果对于闰年而言与其他年份不同。时区也增加了复杂性。例如,一个国家可能会在短时间内进出夏令时,或者一年多次进入夏令时,或者可能在某一年内完全跳过夏令时。

Date-Time API 使用 ISO-8601 中定义的日历系统作为默认日历。此日历基于公历系统,并在全球范围内用作表示日期和时间的事实标准。 Date-Time API 中的核心类具有LocalDateTimeZonedDateTimeOffsetDateTime等名称。所有这些都使用 ISO 日历系统。如果您想使用其他日历系统,例如 Hijrah 或 Thai Buddhist, java.time.chrono包允许您使用其中一个预定义的日历系统。或者你可以创建自己的。

Date-Time API 使用 Unicode 公共区域设置数据存储库(CLDR)。该存储库支持世界上的语言,并包含世界上最大的可用区域设置数据集。此存储库中的信息已本地化为数百种语言。 Date-Time API 也使用时区数据库(TZDB)。该数据库提供了自 1970 年以来全球每个时区变化的信息,以及自引入该概念以来的主要时区的历史记录。