文档

Java™ 教程-Java Tutorials 中文版
概述
Trail: Date Time
Lesson: Standard Calendar

概述

表示时间有两种基本方法。一种方式表示人类时间,称为 human time (人类时间),例如年,月,日,小时,分钟和秒。另一种方式,machine time (机器时间),沿着来自原点,称为 epoch (时期),的时间线连续测量时间,以纳秒为分辨率。Date-Time 包提供了丰富的类数组,用于表示日期和时间。Date-Time API 中的某些类用于表示机器时间,而其他类更适合表示人类时间。

首先确定你需要的日期和时间的哪些方面,然后选择满足这些需求的一个或多个类。在选择基于时间的类时,首先要决定是需要表示人类时间还是机器时间。然后,你可以确定需要表示的时间方面。你需要一个时区吗?日期 时间?仅限日期?如果你需要日期,你需要月,日, 年,还是需要一个子集?


术语: 术语: Date-Time API 中用于捕获和处理日期或时间值的类,例如 InstantLocalDateTimeZonedDateTime,在本教程中称为 temporal-based (基于时间的) 类(或类型)。支持类型(例如 TemporalAdjuster 接口或 DayOfWeek 枚举)不包含在此定义中。

例如,你可以使用 LocalDate 对象来表示出生日期,因为大多数人在同一天观察他们的生日,无论他们是在出生城市还是在国际日期行的另一侧的全球各地。如果你正在跟踪占星时间,那么你可能希望使用 LocalDateTime 对象来表示出生日期和时间,或者使用 ZonedDateTime,其中还包括时区。如果你正在创建时间戳,那么你很可能希望使用 Instant,它允许你将时间线上的一个瞬时点与另一个瞬时点进行比较。

下表总结了存储日期和/或时间信息的 java.time 包中基于时间的类,或者可用于测量时间量的类。列中的复选标记表示该类使用该特定类型的数据,toString Output 列显示使用 toString 方法打印的实例。Where Discussed 列链接到教程中的相关页面。

类或枚举 Year Month Day 秒* 时区偏移 时区 ID toString 输出 讨论的地方
Instant          
checked
    2013-08-20T15:16:26.355Z Instant 类
LocalDate
checked
checked
checked
          2013-08-20 日期类
LocalDateTime
checked
checked
checked
checked
checked
checked
    2013-08-20T08:16:26.937 日期和时间类
ZonedDateTime
checked
checked
checked
checked
checked
checked
checked
checked
2013-08-21T00:16:26.941+09:00[Asia/Tokyo] 时区和偏移类
LocalTime      
checked
checked
checked
    08:16:26.943 日期和时间类
MonthDay  
checked
checked
          --08-20 日期类
Year
checked
              2013 日期类
YearMonth
checked
checked
            2013-08 日期类
Month  
checked
            AUGUST DayOfWeek 和 Month 枚举
OffsetDateTime
checked
checked
checked
checked
checked
checked
checked
  2013-08-20T08:16:26.954-07:00 时区和偏移类
OffsetTime      
checked
checked
checked
checked
  08:16:26.957-07:00 时区和偏移类
Duration     ** ** **
checked
    PT20H (20 hours) Period 和 Duration
Period
checked
checked
checked
      *** *** P10D (10 days) Period 和 Duration
* 秒数被捕获到纳秒级精度。
** 此类不存储此信息,但具有提供这些单位的时间的方法。
*** Period 添加到 ZonedDateTime 时,会观察到夏令时或其他本地时差。

Previous page: Standard Calendar
Next page: DayOfWeek and Month Enums