- 所有已实现的接口:
Serializable,Comparable<Duration>,TemporalAmount
此类以秒和纳秒为单位对数量或时间量进行建模。可以使用其他基于持续时间的单位(例如分钟和小时)来访问它。此外,可以使用 DAYS 单位并将其视为正好等于 24 小时,从而忽略夏令时的影响。有关此类基于日期的等效项,请参见 Period 。
物理持续时间可以无限长。为实用起见,持续时间以类似于 Instant 的约束存储。持续时间使用纳秒分辨率,最大值为 long 中可以保存的秒数。这比目前估计的宇宙年龄要大。
持续时间的范围需要存储大于 long 的数字。为实现这一点,该类存储了一个代表秒的 long 和一个代表纳秒的 int,它们始终介于 0 和 999,999,999 之间。该模型具有定向持续时间,这意味着持续时间可能为负。
持续时间以“秒”为单位测量,但这些不一定与基于原子钟的科学“SI 秒”定义相同。这种差异只会影响在闰秒附近测量的持续时间,不应影响大多数应用程序。请参阅 Instant 以了解有关秒和时标含义的讨论。
这是一个value-based类;程序员应该将 equal 的实例视为可互换的,并且不应使用实例进行同步,否则可能会发生不可预测的行为。例如,在未来的版本中,同步可能会失败。 equals 方法应该用于比较。
- 实现要求:
- 这个类是不可变的和线程安全的。
- 自从:
- 1.8
- 参见:
-
字段摘要
字段 -
方法总结
修饰符和类型方法描述abs()返回具有正长度的此持续时间的副本。将此持续时间添加到指定的时间对象。static Duration获得一个Duration表示两个时间对象之间的持续时间。int将此持续时间与指定的Duration进行比较。dividedBy(long divisor) 返回此持续时间除以指定值的副本。long返回指定 Duration 在此 Duration 内出现的整数次。boolean检查此持续时间是否等于指定的Duration。static Durationfrom(TemporalAmount amount) 从时间量中获取Duration的实例。longget(TemporalUnit unit) 获取所请求单位的值。intgetNano()获取此持续时间内秒内的纳秒数。long获取此持续时间内的秒数。getUnits()获取此持续时间支持的单位集。inthashCode()此持续时间的哈希码。boolean检查此持续时间是否为负数,不包括零。boolean检查此持续时间是否为正,不包括零。booleanisZero()检查此持续时间是否为零长度。minus(long amountToSubtract, TemporalUnit unit) 返回此持续时间的副本,并减去指定的持续时间。返回此持续时间的副本,并减去指定的持续时间。minusDays(long daysToSubtract) 返回此持续时间的副本,其中减去标准 24 小时工作日中的指定持续时间。minusHours(long hoursToSubtract) 返回此持续时间的副本,并减去指定的持续时间(以小时为单位)。minusMillis(long millisToSubtract) 返回此持续时间的副本,并减去指定的持续时间(以毫秒为单位)。minusMinutes(long minutesToSubtract) 返回此持续时间的副本,并减去指定的持续时间(以分钟为单位)。minusNanos(long nanosToSubtract) 返回此持续时间的副本,并减去以纳秒为单位的指定持续时间。minusSeconds(long secondsToSubtract) 返回此持续时间的副本,并减去指定的持续时间(以秒为单位)。multipliedBy(long multiplicand) 返回此持续时间乘以标量的副本。negated()返回此持续时间的副本,长度取反。static Durationof(long amount, TemporalUnit unit) 获得表示指定单位金额的Duration。static DurationofDays(long days) 获得一个Duration表示标准 24 小时工作日的数量。static DurationofHours(long hours) 获得代表标准小时数的Duration。static DurationofMillis(long millis) 获得代表毫秒数的Duration。static DurationofMinutes(long minutes) 获得代表标准分钟数的Duration。static DurationofNanos(long nanos) 获得代表纳秒数的Duration。static DurationofSeconds(long seconds) 获得代表秒数的Duration。static DurationofSeconds(long seconds, long nanoAdjustment) 获得代表秒数的Duration和以纳秒为单位的调整。static Durationparse(CharSequence text) 从PnDTnHnMn.nS等文本字符串中获取Duration。plus(long amountToAdd, TemporalUnit unit) 返回此持续时间的副本,并添加了指定的持续时间。返回此持续时间的副本,并添加了指定的持续时间。plusDays(long daysToAdd) 返回此持续时间的副本,并添加了标准 24 小时工作日中指定的持续时间。plusHours(long hoursToAdd) 返回此持续时间的副本,其中添加了以小时为单位的指定持续时间。plusMillis(long millisToAdd) 返回此持续时间的副本,并添加指定的持续时间(以毫秒为单位)。plusMinutes(long minutesToAdd) 返回此持续时间的副本,并添加指定的持续时间(以分钟为单位)。plusNanos(long nanosToAdd) 返回此持续时间的副本,并添加了以纳秒为单位的指定持续时间。plusSeconds(long secondsToAdd) 返回此持续时间的副本,并添加指定的持续时间(以秒为单位)。subtractFrom(Temporal temporal) 从指定的时间对象中减去此持续时间。longtoDays()获取此持续时间内的天数。long提取持续时间中的天数。longtoHours()获取此持续时间内的小时数。int提取持续时间中的小时数部分。longtoMillis()将此持续时间转换为以毫秒为单位的总长度。int提取持续时间的毫秒数部分。long获取此持续时间内的分钟数。int提取持续时间中的分钟数部分。longtoNanos()将此持续时间转换为以纳秒为单位的总长度,表示为long。int在持续时间的秒内获取纳秒部分。long获取此持续时间内的秒数。int提取持续时间中的秒数部分。toString()此持续时间的字符串表示使用基于 ISO-8601 秒的表示,例如PT8H6M12.345S。truncatedTo(TemporalUnit unit) 返回截断为指定单位的此Duration的副本。withNanos(int nanoOfSecond) 返回具有指定纳秒级的此持续时间的副本。withSeconds(long seconds) 返回具有指定秒数的此持续时间的副本。
-
字段详细信息
-
ZERO
持续时间为零。
-
-
方法详情
-
ofDays
获得一个Duration表示标准 24 小时工作日的数量。秒数是根据一天的标准定义计算的,其中每一天为 86400 秒,表示一天 24 小时。第二个字段中的纳秒设置为零。
- 参数:
days- 天数,正数或负数- 返回:
-
一个
Duration,不为空 - 抛出:
ArithmeticException- 如果输入天数超过Duration的容量
-
ofHours
获得代表标准小时数的Duration。秒数是根据小时的标准定义计算的,其中每小时为 3600 秒。第二个字段中的纳秒设置为零。
- 参数:
hours- 小时数,正数或负数- 返回:
-
一个
Duration,不为空 - 抛出:
ArithmeticException- 如果输入小时数超过Duration的容量
-
ofMinutes
获得代表标准分钟数的Duration。秒数是根据分钟的标准定义计算的,其中每分钟为 60 秒。第二个字段中的纳秒设置为零。
- 参数:
minutes- 分钟数,正数或负数- 返回:
-
一个
Duration,不为空 - 抛出:
ArithmeticException- 如果输入分钟数超过Duration的容量
-
ofSeconds
获得代表秒数的Duration。第二个字段中的纳秒设置为零。
- 参数:
seconds- 秒数,正数或负数- 返回:
-
一个
Duration,不为空
-
ofSeconds
获得代表秒数的Duration和以纳秒为单位的调整。此方法允许传入任意数量的纳秒。工厂将更改秒和纳秒的值,以确保存储的纳秒在 0 到 999,999,999 范围内。例如,以下将导致完全相同的持续时间:
Duration.ofSeconds(3, 1); Duration.ofSeconds(4, -999_999_999); Duration.ofSeconds(2, 1000_000_001);
- 参数:
seconds- 秒数,正数或负数nanoAdjustment- 对秒数的纳秒调整,正数或负数- 返回:
-
一个
Duration,不为空 - 抛出:
ArithmeticException- 如果调整导致秒数超过Duration的容量
-
ofMillis
获得代表毫秒数的Duration。秒和纳秒是从指定的毫秒中提取的。
- 参数:
millis- 毫秒数,正数或负数- 返回:
-
一个
Duration,不为空
-
ofNanos
获得代表纳秒数的Duration。从指定的纳秒中提取秒和纳秒。
- 参数:
nanos- 纳秒数,正数或负数- 返回:
-
一个
Duration,不为空
-
of
获得表示指定单位金额的Duration。参数代表短语的两个部分,如“6 小时”。例如:
Duration.of(3, SECONDS); Duration.of(465, HOURS);
此方法仅接受部分单位。该单位必须有一个 确切的持续时间 或ChronoUnit.DAYS被视为 24 小时。其他单位抛出异常。- 参数:
amount- 持续时间的量,以单位衡量,正数或负数unit- 测量持续时间的单位,必须有一个准确的持续时间,不为空- 返回:
-
一个
Duration,不为空 - 抛出:
DateTimeException- 如果周期单元有估计持续时间ArithmeticException- 如果发生数字溢出
-
from
从时间量中获取Duration的实例。这将根据指定的数量获得持续时间。
TemporalAmount表示时间量,它可以是基于日期或基于时间的,该工厂将其提取到持续时间。转换围绕金额的单位集循环,并使用单位的 duration 计算总计
Duration。这种方法只接受一部分单位。该单位必须有一个 确切的持续时间 或ChronoUnit.DAYS被视为 24 小时。如果找到任何其他单元,则会抛出异常。- 参数:
amount- 要转换的时间量,不为空- 返回:
- 等效持续时间,不为空
- 抛出:
DateTimeException- 如果无法转换为DurationArithmeticException- 如果发生数字溢出
-
parse
从PnDTnHnMn.nS等文本字符串中获取Duration。这将解析持续时间的文本表示,包括
toString()生成的字符串。接受的格式基于 ISO-8601 持续时间格式PnDTnHnMn.nS,天数被认为正好是 24 小时。该字符串以可选符号开头,由 ASCII 负号或正号表示。如果为负,则整个周期都被否定。接下来是大写或小写的 ASCII 字母“P”。然后有四个部分,每个部分由一个数字和一个后缀组成。这些部分的 ASCII 后缀为“D”、“H”、“M”和“S”,分别表示天、小时、分钟和秒,接受大写或小写形式。后缀必须按顺序出现。 ASCII 字母“T”必须出现在第一次出现之前,如果有的话,小时、分钟或第二部分。四个部分中至少有一个必须存在,如果存在“T”,则“T”之后必须至少有一个部分。每个部分的数字部分必须由一个或多个 ASCII 数字组成。该数字可以以 ASCII 负号或正号作为前缀。天数、小时数和分钟数必须解析为
long。秒数必须解析为带有可选分数的long。小数点可以是点或逗号。小数部分可能有 0 到 9 位数字。其他单位的前导加/减号和负值不是 ISO-8601 标准的一部分。
示例:
"PT20.345S" -- parses as "20.345 seconds" "PT15M" -- parses as "15 minutes" (where a minute is 60 seconds) "PT10H" -- parses as "10 hours" (where an hour is 3600 seconds) "P2D" -- parses as "2 days" (where a day is 24 hours or 86400 seconds) "P2DT3H4M" -- parses as "2 days, 3 hours and 4 minutes" "PT-6H3M" -- parses as "-6 hours and +3 minutes" "-PT6H3M" -- parses as "-6 hours and -3 minutes" "-PT-6H+3M" -- parses as "+6 hours and -3 minutes"
- 参数:
text- 要解析的文本,不为空- 返回:
- 解析的持续时间,不为空
- 抛出:
DateTimeParseException- 如果文本无法解析为持续时间
-
between
获得一个Duration表示两个时间对象之间的持续时间。这将计算两个时间对象之间的持续时间。如果对象属于不同类型,则持续时间根据第一个对象的类型计算。例如,如果第一个参数是
LocalTime,则第二个参数将转换为LocalTime。指定的时间对象必须支持
SECONDS单元。为了完全准确,应支持NANOS单元或NANO_OF_SECOND字段。如果结束早于开始,则此方法的结果可能是负周期。为保证在结果上获得正持续时间调用
abs()。- 参数:
startInclusive- 开始时刻,包括在内,不为空endExclusive- 结束瞬间,独占,不为空- 返回:
-
一个
Duration,不为空 - 抛出:
DateTimeException- 如果无法获得时间之间的秒数ArithmeticException- 如果计算超出了Duration的容量
-
get
- 指定者:
get在接口TemporalAmount中- 参数:
unit- 要为其返回值的TemporalUnit- 返回:
- 单位的长值
- 抛出:
DateTimeException- 如果不支持该单元UnsupportedTemporalTypeException- 如果不支持该单元
-
getUnits
获取此持续时间支持的单位集。支持的单位是
SECONDS和NANOS。它们以秒、纳秒的顺序返回。该集合可以与
get(TemporalUnit)结合使用以访问持续时间的整个状态。- 指定者:
getUnits在接口TemporalAmount中- 返回:
- 包含秒和纳米单位的列表,不为空
-
isPositive
public boolean isPositive()检查此持续时间是否为正,不包括零。Duration表示时间线上两点之间的定向距离,因此可以为正、零或负。此方法检查长度是否大于零。- 返回:
- 如果此持续时间的总长度大于零,则为真
- 自从:
- 18
-
isZero
public boolean isZero()检查此持续时间是否为零长度。Duration表示时间线上两点之间的定向距离,因此可以为正、零或负。此方法检查长度是否为零。- 返回:
- 如果此持续时间的总长度等于零,则为真
-
isNegative
public boolean isNegative()检查此持续时间是否为负数,不包括零。Duration表示时间线上两点之间的定向距离,因此可以为正、零或负。此方法检查长度是否小于零。- 返回:
- 如果此持续时间的总长度小于零,则为真
-
getSeconds
public long getSeconds()获取此持续时间内的秒数。持续时间的长度使用两个字段存储 - 秒和纳秒。纳秒部分是一个从 0 到 999,999,999 的值,它是对以秒为单位的长度的调整。总持续时间通过调用此方法和
getNano()来定义。Duration表示时间线上两点之间的定向距离。负持续时间由秒部分的负号表示。 -1 纳秒的持续时间存储为 -1 秒加上 999,999,999 纳秒。- 返回:
- 持续时间长度的整秒部分,正数或负数
-
getNano
public int getNano()获取此持续时间内秒内的纳秒数。持续时间的长度使用两个字段存储 - 秒和纳秒。纳秒部分是一个从 0 到 999,999,999 的值,它是对以秒为单位的长度的调整。总持续时间通过调用此方法和
getSeconds()来定义。Duration表示时间线上两点之间的定向距离。负持续时间由秒部分的负号表示。 -1 纳秒的持续时间存储为 -1 秒加上 999,999,999 纳秒。- 返回:
- 持续时间长度的第二部分内的纳秒,从 0 到 999,999,999
-
withSeconds
返回具有指定秒数的此持续时间的副本。这将返回具有指定秒数的持续时间,并保留此持续时间的纳秒部分。
此实例是不可变的,不受此方法调用的影响。
- 参数:
seconds- 代表的秒数,可能是负数- 返回:
Duration基于此时间段和请求的秒数,不为空
-
withNanos
返回具有指定纳秒级的此持续时间的副本。这将返回具有指定纳秒级的持续时间,并保留此持续时间的秒部分。
此实例是不可变的,不受此方法调用的影响。
- 参数:
nanoOfSecond- 表示的纳秒,从 0 到 999,999,999- 返回:
Duration基于此时间段,具有请求的纳秒级,不为空- 抛出:
DateTimeException- 如果纳秒无效
-
plus
返回此持续时间的副本,并添加了指定的持续时间。此实例是不可变的,不受此方法调用的影响。
- 参数:
duration- 添加的持续时间,正数或负数,不为空- 返回:
Duration基于此持续时间并添加了指定的持续时间,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
plus
返回此持续时间的副本,并添加了指定的持续时间。持续时间量以指定单位衡量。这种方法只接受一部分单位。该单位必须有一个 确切的持续时间 或
ChronoUnit.DAYS被视为 24 小时。其他单位抛出异常。此实例是不可变的,不受此方法调用的影响。
- 参数:
amountToAdd- 添加量,以单位衡量,正数或负数unit- 衡量金额的单位,必须有准确的持续时间,不为空- 返回:
Duration基于此持续时间并添加了指定的持续时间,不为空- 抛出:
UnsupportedTemporalTypeException- 如果不支持该单元ArithmeticException- 如果发生数字溢出
-
plusDays
返回此持续时间的副本,并添加了标准 24 小时工作日中指定的持续时间。天数乘以 86400 以获得要添加的秒数。这是基于将一天定义为 24 小时的标准定义。
此实例是不可变的,不受此方法调用的影响。
- 参数:
daysToAdd- 添加的天数,正数或负数- 返回:
Duration基于此持续时间并添加了指定的天数,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
plusHours
返回此持续时间的副本,其中添加了以小时为单位的指定持续时间。此实例是不可变的,不受此方法调用的影响。
- 参数:
hoursToAdd- 要添加的小时数,正数或负数- 返回:
Duration基于此持续时间并添加了指定的小时数,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
plusMinutes
返回此持续时间的副本,并添加指定的持续时间(以分钟为单位)。此实例是不可变的,不受此方法调用的影响。
- 参数:
minutesToAdd- 添加的分钟数,正数或负数- 返回:
Duration基于此持续时间并添加了指定的分钟数,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
plusSeconds
返回此持续时间的副本,并添加指定的持续时间(以秒为单位)。此实例是不可变的,不受此方法调用的影响。
- 参数:
secondsToAdd- 添加的秒数,正数或负数- 返回:
Duration基于此持续时间并添加了指定的秒数,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
plusMillis
返回此持续时间的副本,并添加指定的持续时间(以毫秒为单位)。此实例是不可变的,不受此方法调用的影响。
- 参数:
millisToAdd- 要添加的毫秒数,正数或负数- 返回:
Duration基于此持续时间并添加了指定的毫秒数,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
plusNanos
返回此持续时间的副本,并添加了以纳秒为单位的指定持续时间。此实例是不可变的,不受此方法调用的影响。
- 参数:
nanosToAdd- 添加的纳秒数,正数或负数- 返回:
Duration基于此持续时间并添加了指定的纳秒,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
minus
返回此持续时间的副本,并减去指定的持续时间。此实例是不可变的,不受此方法调用的影响。
- 参数:
duration- 减去的持续时间,正数或负数,不为空- 返回:
Duration基于此持续时间减去指定的持续时间,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
minus
返回此持续时间的副本,并减去指定的持续时间。持续时间量以指定单位衡量。这种方法只接受一部分单位。该单位必须有一个 确切的持续时间 或
ChronoUnit.DAYS被视为 24 小时。其他单位抛出异常。此实例是不可变的,不受此方法调用的影响。
- 参数:
amountToSubtract- 要减去的量,以单位衡量,正数或负数unit- 衡量金额的单位,必须有准确的持续时间,不为空- 返回:
Duration基于此持续时间减去指定的持续时间,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
minusDays
返回此持续时间的副本,其中减去标准 24 小时工作日中的指定持续时间。天数乘以 86400 以获得要减去的秒数。这是基于将一天定义为 24 小时的标准定义。
此实例是不可变的,不受此方法调用的影响。
- 参数:
daysToSubtract- 要减去的天数,正数或负数- 返回:
Duration基于此持续时间减去指定的天数,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
minusHours
返回此持续时间的副本,并减去指定的持续时间(以小时为单位)。小时数乘以 3600 以获得要减去的秒数。
此实例是不可变的,不受此方法调用的影响。
- 参数:
hoursToSubtract- 要减去的小时数,正数或负数- 返回:
Duration基于此持续时间减去指定的小时数,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
minusMinutes
返回此持续时间的副本,并减去指定的持续时间(以分钟为单位)。小时数乘以 60 得到要减去的秒数。
此实例是不可变的,不受此方法调用的影响。
- 参数:
minutesToSubtract- 要减去的分钟数,正数或负数- 返回:
Duration基于此持续时间减去指定的分钟数,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
minusSeconds
返回此持续时间的副本,并减去指定的持续时间(以秒为单位)。此实例是不可变的,不受此方法调用的影响。
- 参数:
secondsToSubtract- 减去的秒数,正数或负数- 返回:
Duration基于此持续时间减去指定的秒数,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
minusMillis
返回此持续时间的副本,并减去指定的持续时间(以毫秒为单位)。此实例是不可变的,不受此方法调用的影响。
- 参数:
millisToSubtract- 要减去的毫秒数,正数或负数- 返回:
Duration基于此持续时间减去指定的毫秒数,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
minusNanos
返回此持续时间的副本,并减去以纳秒为单位的指定持续时间。此实例是不可变的,不受此方法调用的影响。
- 参数:
nanosToSubtract- 要减去的纳秒,正数或负数- 返回:
Duration基于此持续时间减去指定的纳秒,不为空- 抛出:
ArithmeticException- 如果发生数字溢出
-
multipliedBy
返回此持续时间乘以标量的副本。此实例是不可变的,不受此方法调用的影响。
- 参数:
multiplicand- 持续时间乘以的值,正数或负数- 返回:
-
基于此持续时间乘以指定标量的
Duration,不为空 - 抛出:
ArithmeticException- 如果发生数字溢出
-
dividedBy
返回此持续时间除以指定值的副本。此实例是不可变的,不受此方法调用的影响。
- 参数:
divisor- 持续时间除以的值,正数或负数,不为零- 返回:
Duration基于此持续时间除以指定的除数,不为空- 抛出:
ArithmeticException- 如果除数为零或发生数字溢出
-
dividedBy
返回指定 Duration 在此 Duration 内出现的整数次。此实例是不可变的,不受此方法调用的影响。
- 参数:
divisor- 持续时间除以的值,正数或负数,不为空- 返回:
-
整数次数,向零舍入,在此持续时间内发生指定的
Duration,可能为负数 - 抛出:
ArithmeticException- 如果除数为零,或者发生数字溢出- 自从:
- 9
-
negated
返回此持续时间的副本,长度取反。此方法交换此持续时间的总长度的符号。例如,
PT1.3S将返回为PT-1.3S。此实例是不可变的,不受此方法调用的影响。
- 返回:
-
a
Duration基于此持续时间,金额被否定,不为空 - 抛出:
ArithmeticException- 如果发生数字溢出
-
abs
返回具有正长度的此持续时间的副本。此方法通过有效地从任何负总长度中删除符号来返回正持续时间。例如,
PT-1.3S将返回为PT1.3S。此实例是不可变的,不受此方法调用的影响。
- 返回:
-
一个
Duration基于这个具有绝对长度的持续时间,不为空 - 抛出:
ArithmeticException- 如果发生数字溢出
-
addTo
将此持续时间添加到指定的时间对象。这将返回一个与添加了此持续时间的输入具有相同可观察类型的时间对象。
在大多数情况下,使用
Temporal.plus(TemporalAmount)反转调用模式会更清楚。// these two lines are equivalent, but the second approach is recommended dateTime = thisDuration.addTo(dateTime); dateTime = dateTime.plus(thisDuration);
计算将添加秒,然后是纳秒。只会添加非零金额。
此实例是不可变的,不受此方法调用的影响。
- 指定者:
addTo在接口TemporalAmount中- 参数:
temporal- 要调整的时间对象,不为空- 返回:
- 进行了调整的同一类型的对象,不为空
- 抛出:
DateTimeException- 如果无法添加ArithmeticException- 如果发生数字溢出
-
subtractFrom
从指定的时间对象中减去此持续时间。这将返回一个与减去此持续时间的输入具有相同可观察类型的时间对象。
在大多数情况下,使用
Temporal.minus(TemporalAmount)反转调用模式会更清楚。// these two lines are equivalent, but the second approach is recommended dateTime = thisDuration.subtractFrom(dateTime); dateTime = dateTime.minus(thisDuration);
计算将减去秒,然后减去纳秒。只会添加非零金额。
此实例是不可变的,不受此方法调用的影响。
- 指定者:
subtractFrom在接口TemporalAmount中- 参数:
temporal- 要调整的时间对象,不为空- 返回:
- 进行了调整的同一类型的对象,不为空
- 抛出:
DateTimeException- 如果无法减去ArithmeticException- 如果发生数字溢出
-
toDays
public long toDays()获取此持续时间内的天数。这将通过将秒数除以 86400 来返回持续时间中的总天数。这是基于将一天定义为 24 小时的标准。
此实例是不可变的,不受此方法调用的影响。
- 返回:
- 持续时间的天数,可能是负数
-
toHours
public long toHours()获取此持续时间内的小时数。这将通过将秒数除以 3600 来返回持续时间内的总小时数。
此实例是不可变的,不受此方法调用的影响。
- 返回:
- 持续时间的小时数,可能是负数
-
toMinutes
public long toMinutes()获取此持续时间内的分钟数。这将通过将秒数除以 60 来返回持续时间内的总分钟数。
此实例是不可变的,不受此方法调用的影响。
- 返回:
- 持续时间的分钟数,可能是负数
-
toSeconds
public long toSeconds()获取此持续时间内的秒数。这将返回持续时间内的总秒数。
此实例是不可变的,不受此方法调用的影响。
- 返回:
- 持续时间长度的整秒部分,正数或负数
- 自从:
- 9
-
toMillis
public long toMillis()将此持续时间转换为以毫秒为单位的总长度。如果此持续时间太大而无法容纳
long毫秒,则会抛出异常。如果此持续时间的精度大于毫秒,则转换将丢弃任何多余的精度信息,就好像以纳秒为单位的数量要除以一百万。
- 返回:
- 持续时间的总长度(以毫秒为单位)
- 抛出:
ArithmeticException- 如果发生数字溢出
-
toNanos
public long toNanos()将此持续时间转换为以纳秒为单位的总长度,表示为long。如果此持续时间太大而无法容纳
long纳秒,则会抛出异常。- 返回:
- 持续时间的总长度(以纳秒为单位)
- 抛出:
ArithmeticException- 如果发生数字溢出
-
toDaysPart
public long toDaysPart()提取持续时间中的天数。这将通过将秒数除以 86400 来返回持续时间中的总天数。这是基于将一天定义为 24 小时的标准。
此实例是不可变的,不受此方法调用的影响。
- API 注意:
-
此方法的行为方式与
toDays()完全相同。 - 返回:
- 持续时间的天数,可能是负数
- 自从:
- 9
-
toHoursPart
public int toHoursPart()提取持续时间中的小时数部分。这将返回
toHours()除以一天中的小时数时的剩余小时数。这是基于将一天定义为 24 小时的标准定义。此实例是不可变的,不受此方法调用的影响。
- 返回:
- 持续时间中的小时数,可能是负数
- 自从:
- 9
-
toMinutesPart
public int toMinutesPart()提取持续时间中的分钟数部分。这将返回
toMinutes()除以一小时内的分钟数时的剩余分钟数。这是基于一个小时为 60 分钟的标准定义。此实例是不可变的,不受此方法调用的影响。
- 返回:
- 持续时间中的分钟数,可能是负数
- 自从:
- 9
-
toSecondsPart
public int toSecondsPart()提取持续时间中的秒数部分。这将返回
toSeconds()除以一分钟内的秒数时的剩余秒数。这是基于一分钟为 60 秒的标准定义。此实例是不可变的,不受此方法调用的影响。
- 返回:
- 持续时间中的秒数部分,可能是负数
- 自从:
- 9
-
toMillisPart
public int toMillisPart()提取持续时间的毫秒数部分。这通过将纳秒数除以 1,000,000 返回毫秒部分。持续时间的长度使用两个字段存储 - 秒和纳秒。纳秒部分是一个从 0 到 999,999,999 的值,它是对以秒为单位的长度的调整。总持续时间通过调用
getNano()和getSeconds()来定义。此实例是不可变的,不受此方法调用的影响。
- 返回:
- 持续时间的毫秒数。
- 自从:
- 9
-
toNanosPart
public int toNanosPart()在持续时间的秒内获取纳秒部分。持续时间的长度使用两个字段存储 - 秒和纳秒。纳秒部分是一个从 0 到 999,999,999 的值,它是对以秒为单位的长度的调整。总持续时间通过调用
getNano()和getSeconds()来定义。此实例是不可变的,不受此方法调用的影响。
- 返回:
- 持续时间长度的第二部分内的纳秒,从 0 到 999,999,999
- 自从:
- 9
-
truncatedTo
返回截断为指定单位的此Duration的副本。截断持续时间会返回原始副本,其概念字段小于指定单位设置为零。例如,使用
MINUTES单位截断将向下舍入到零到最接近的分钟,将秒和纳秒设置为零。该单位必须有一个 duration,它可以划分为一个标准日的长度,没有余数。这包括所有
ChronoUnit上的基于时间的单位 和DAYS。其他 ChronoUnits 抛出异常。此实例是不可变的,不受此方法调用的影响。
- 参数:
unit- 要截断的单位,不为空- 返回:
-
a
Duration基于此持续时间并截断时间,不为空 - 抛出:
DateTimeException- 如果单位对于截断无效UnsupportedTemporalTypeException- 如果不支持该单元- 自从:
- 9
-
compareTo
将此持续时间与指定的Duration进行比较。比较基于持续时间的总长度。正如
Comparable所定义的那样,它“与等于一致”。- 指定者:
compareTo在接口Comparable<Duration>中- 参数:
otherDuration- 要比较的其他持续时间,不为空- 返回:
- 比较值,小于则为负,大于则为正
-
equals
检查此持续时间是否等于指定的Duration。比较基于持续时间的总长度。
-
hashCode
public int hashCode()此持续时间的哈希码。 -
toString
此持续时间的字符串表示使用基于 ISO-8601 秒的表示,例如PT8H6M12.345S。返回字符串的格式为
PTnHnMnS,其中 n 是持续时间的相关小时、分钟或秒部分。任何小数秒都放在秒部分的小数点之后。如果一个部分有一个零值,它被省略。小时、分钟和秒都具有相同的符号。示例:
"20.345 seconds" -- "PT20.345S "15 minutes" (15 * 60 seconds) -- "PT15M" "10 hours" (10 * 3600 seconds) -- "PT10H" "2 days" (2 * 86400 seconds) -- "PT48H"
请注意,24 小时的倍数不会输出为天,以避免与Period混淆。
-