Duration类
基于时间的时间量,例如“34.5秒”。
此类以秒和纳秒为单位对时间的量或量进行建模。它可以使用其他基于持续时间的单位访问,如分钟和小时。此外,可以使用DAYS单位,并将其视为完全等于24小时,从而忽略夏令时的影响。有关此类基于日期的等效项,请参见期间。
物理持续时间可以是无限长的。为了实用,使用类似于Instant的约束来存储持续时间。持续时间使用纳秒分辨率,在长时间内可以保持的最大值为秒。这比目前估计的宇宙年龄还要大。
持续时间的范围需要存储一个大于长的数字。为了实现这一点,该类存储一个表示秒的long和一个表示纳秒秒的int,该值始终在0和999999999之间。该模型具有定向持续时间,这意味着该持续时间可能是负的。
持续时间以“秒”为单位,但这些不一定与基于原子钟的科学“SI秒”定义相同。这种差异只影响在闰秒附近测量的持续时间,不应影响大多数应用程序。请参阅即时讨论第二个和时间刻度的含义。
这是一个基于价值的类;在Duration实例上使用标识敏感操作(包括引用相等(==)、标识哈希代码或同步)可能会产生不可预测的结果,应避免。应使用equals方法进行比较。
实施要求:
这个类是不可变的并且是线程安全的。
按照上图可以查看Duration类。
Duration实现了 TemporalAmount, Comparable<Duration>, Serializable 这几个接口。
方法摘要
方法声明 | 功能描述 |
between(Temporal startInclusive,TemporalendExclusive) | 获取一个 Duration 实例,表示两个时间对象之间的间隔 |
toDays() | 将时间间隔转换为以天为单位 |
toHours() | 将时间间 |