public final class Duration extends Object implements TemporalAmount, Comparable<Duration>, Serializable
这类模型的数量或在秒和纳秒的时间量。它可以使用其他基于时间的单位,如分钟和小时访问。此外,该DAYS
单元可被视为完全平等的24小时,从而忽视了日光节约时间的影响。看到这类基于等效的日期Period
。
一个物理的持续时间可以是无限长的。为了实用,时间存储约束类似Instant
。持续使用纳秒分辨率有可以在一个long
举行秒最大值。这是大于当前估计的宇宙的年龄。
一个时间范围内需要一个数大于一个long
存储。要做到这一点,这类存储long
代表秒,代表第二int
纳秒,这将永远是0和999999999之间。该模型是一个有向的持续时间,这意味着持续时间可能是负的。
持续时间测量在“秒”,但这些不一定是相同的科学“硅第二”的定义,基于原子钟。这种差异只影响持续时间测量的飞跃,第二,不应该影响大多数应用。看到一个讨论作为第二和时间尺度的意义Instant
。
这是一个value-based类;利用身份敏感的操作(包括引用相等(==
),身份的哈希代码,或同步)的实例Duration
可能有不可预知的结果应该是可以避免的。的equals
法进行比较。
Modifier and Type | Method and Description |
---|---|
Duration |
abs()
返回此持续时间的一个正长度的副本。
|
Temporal |
addTo(Temporal temporal)
将此持续时间添加到指定的时间对象。
|
static Duration |
between(Temporal startInclusive, Temporal endExclusive)
获得
Duration 表示两个时间对象之间的时间。
|
int |
compareTo(Duration otherDuration)
比较这个时间到指定的
Duration 。
|
Duration |
dividedBy(long divisor)
返回按指定值除以该持续时间的副本。
|
boolean |
equals(Object otherDuration)
如果这个检查持续时间等于指定的
Duration 。
|
static Duration |
from(TemporalAmount amount)
获得
Duration 实例从一个时间量。
|
long |
get(TemporalUnit unit)
获取所请求的单元的值。
|
int |
getNano()
得到的纳秒数在第二在这个时间。
|
long |
getSeconds()
获取在此期间的秒数。
|
List<TemporalUnit> |
getUnits()
获取此持续时间所支持的单位集。
|
int |
hashCode()
此持续时间的哈希代码。
|
boolean |
isNegative()
检查此持续时间是否为负,不包括零。
|
boolean |
isZero()
检查此持续时间是否为零的长度。
|
Duration |
minus(Duration duration)
返回此持续时间的副本,用指定的持续时间减去。
|
Duration |
minus(long amountToSubtract, TemporalUnit unit)
返回此持续时间的副本,用指定的持续时间减去。
|
Duration |
minusDays(long daysToSubtract)
返回此持续时间的一个副本,在标准的24小时内减去指定的时间。
|
Duration |
minusHours(long hoursToSubtract)
返回此持续时间的一个副本,用指定的时间减去。
|
Duration |
minusMillis(long millisToSubtract)
返回此持续时间的一个副本,以指定的持续时间减去毫秒。
|
Duration |
minusMinutes(long minutesToSubtract)
返回此持续时间的一个副本,在指定的时间内减去。
|
Duration |
minusNanos(long nanosToSubtract)
返回一份这个时间在纳秒减去指定的时间。
|
Duration |
minusSeconds(long secondsToSubtract)
返回此持续时间的一个副本,用指定的持续时间减去。
|
Duration |
multipliedBy(long multiplicand)
返回此持续时间乘以标量的副本。
|
Duration |
negated()
返回一份这个时间长度的否定。
|
static Duration |
of(long amount, TemporalUnit unit)
获得
Duration 代表指定的单位数量。
|
static Duration |
ofDays(long days)
获得
Duration 代表一些标准的24小时。
|
static Duration |
ofHours(long hours)
获得
Duration 表示数量的标准时间。
|
static Duration |
ofMillis(long millis)
获得
Duration 表示的毫秒数。
|
static Duration |
ofMinutes(long minutes)
获得
Duration 代表一批标准分钟。
|
static Duration |
ofNanos(long nanos)
获得
Duration 代表数纳秒。
|
static Duration |
ofSeconds(long seconds)
获得
Duration 表示秒数。
|
static Duration |
ofSeconds(long seconds, long nanoAdjustment)
获得
Duration 表示秒数,来调整。
|
static Duration |
parse(CharSequence text)
从一个文本字符串,如
PnDTnHnMn.nS 一
Duration 。
|
Duration |
plus(Duration duration)
返回此持续时间的副本,添加指定的持续时间。
|
Duration |
plus(long amountToAdd, TemporalUnit unit)
返回此持续时间的副本,添加指定的持续时间。
|
Duration |
plusDays(long daysToAdd)
返回此持续时间的一个副本,在标准的24小时天添加指定的时间。
|
Duration |
plusHours(long hoursToAdd)
返回此持续时间的一个副本,在指定的时间内添加。
|
Duration |
plusMillis(long millisToAdd)
返回此持续时间的一个副本,以指定的持续时间在毫秒添加。
|
Duration |
plusMinutes(long minutesToAdd)
返回此持续时间的一个副本,在指定的时间内添加。
|
Duration |
plusNanos(long nanosToAdd)
返回一份这个时间在纳秒指定持续时间增加。
|
Duration |
plusSeconds(long secondsToAdd)
返回此持续时间的一个副本,在指定的持续时间内添加。
|
Temporal |
subtractFrom(Temporal temporal)
从指定的时空对象中减去这个时间。
|
long |
toDays()
获取在此期间的天数。
|
long |
toHours()
获取在此期间的几个小时数。
|
long |
toMillis()
将此持续时间转换为毫秒内的总长度。
|
long |
toMinutes()
获取在此期间的分钟数。
|
long |
toNanos()
将这个时间的总长度来表示为一个
long 。
|
String |
toString()
本期使用ISO-8601秒表示的字符串表示,如
PT8H6M12.345S 。
|
Duration |
withNanos(int nanoOfSecond)
返回此持续时间的一个副本与指定的第二个。
|
Duration |
withSeconds(long seconds)
用指定的秒数返回此持续时间的一个副本。
|
public static final Duration ZERO
public static Duration ofDays(long days)
Duration
代表一些标准的24小时。
根据标准定义的一天,每天都是86400秒,这意味着一个24小时的一天的标准定义。在第二场中的纳秒被设置为零。
days
-天数,阳性或阴性
Duration
,不空
ArithmeticException
-如果输入天超过容量
Duration
public static Duration ofHours(long hours)
Duration
表示数量的标准时间。
以一个小时的标准定义为基础计算,每小时3600秒。在第二场中的纳秒被设置为零。
hours
-小时数,阳性或阴性
Duration
,不空
ArithmeticException
-如果输入时间超过
Duration
容量
public static Duration ofMinutes(long minutes)
Duration
代表一批标准分钟。
以一分钟的标准定义为基础计算,每分钟为60秒。在第二场中的纳秒被设置为零。
minutes
-分钟数,阳性或阴性
Duration
,不空
ArithmeticException
-如果输入分钟超过
Duration
容量
public static Duration ofSeconds(long seconds)
Duration
表示秒数。
在第二场中的纳秒被设置为零。
seconds
-秒数,阳性或阴性
Duration
,不空
public static Duration ofSeconds(long seconds, long nanoAdjustment)
Duration
表示秒数,来调整。
这种方法允许任意数量的纳秒将通过。工厂将改变第二和纳秒的值,以确保存储的纳秒是在0至999999999范围内。例如,以下将导致完全相同的持续时间:
时间秒(3、1);时间。秒(4,- 999_999_999);持续时间(2秒1000_000_001);
seconds
-秒数,阳性或阴性
nanoAdjustment
-纳秒调整秒数,阳性或阴性
Duration
,不空
ArithmeticException
-如果调整使秒超过
Duration
容量
public static Duration ofMillis(long millis)
Duration
表示的毫秒数。
秒和纳秒从指定的毫秒提取。
millis
-毫秒数,阳性或阴性
Duration
,不空
public static Duration ofNanos(long nanos)
Duration
代表数纳秒。
秒和纳秒纳秒从指定的提取。
nanos
-纳秒数,阳性或阴性
Duration
,不空
public static Duration of(long amount, TemporalUnit unit)
Duration
代表指定的单位数量。
参数代表的两个部分的一个短语,如“6小时”。例如:
持续时间(3,秒);持续时间(465,小时);只有一部分单位都用这种方式接受。单位必须有一个 exact duration或
ChronoUnit.DAYS
作为24小时。其他单位抛出一个异常。
amount
的时间量,以单位来衡量的,积极的或消极的
unit
-单位时间的测量,必须有一个确切的时间,没有空
Duration
,不空
DateTimeException
如果期间单位历时
ArithmeticException
-如果一个数值溢出时
public static Duration from(TemporalAmount amount)
Duration
实例从一个时间量。
这获得一个基于指定数量的持续时间。一个TemporalAmount
代表时间量,这可能是基于时间的日期,该厂提取时间。
转换环从量的单位和使用单位的duration计算总Duration
。只有一个子集的单位接受这种方法。单位必须有一个exact duration或ChronoUnit.DAYS
作为24小时。如果发现任何其他单位,则抛出异常。
amount
-转换的时间量,不为空
DateTimeException
如果无法转换为
Duration
ArithmeticException
如果数值溢出时
public static Duration parse(CharSequence text)
PnDTnHnMn.nS
一
Duration
。
这一时间将解析的文本表示形式,包括由toString()
字符串的格式。接受是基于时间与天PnDTnHnMn.nS
ISO-8601格式被认为是24个小时。
字符串的开始与一个可选的标志,以ASCII或正或负的符号表示。如果为负,整个时期被否定。ASCII字母“P”是大写或小写下。然后有四个部分,每一个由一个数字和一个后缀组成。部分后缀“D”,是“H”、“M”和“S”为天、小时、分钟和秒,大写或小写接受。后缀必须有序。ASCII字母“T”必须发生第一次发生,如果有,一个小时、分钟或第二。至少四个部分中的一个必须是存在的,如果“t”是存在的,必须至少有一个部分后的“T”。每节数部分必须包含一个或多个ASCII数字。数可以以ASCII或正或负的符号。数天,小时和分钟必须解析到一个long
。秒数必须解析与可选的分数long
。小数点可以是一个点或一个逗号。分数部分可能有从零到9个数字。
领先的加/减征,和其他单位负值不的ISO-8601标准部分。
实例:
“pt20.345s”解析为“20.345秒”“pt15m”解析为“15分钟”(在那里,一分钟都是60秒)“pt10h”解析为“10小时”(其中一个小时是3600秒)“P2D”解析为“2天”(其中一天是24小时或86400秒)“p2dt3h4m”解析为“2天3小时4分钟”“p-6h3m”解析为“6小时和3分钟”“p6h3m”解析为“6小时3分钟”“p-6h + 3M”解析为“+ 6小时和3分钟”
text
-解析文本,不空
DateTimeParseException
-如果文本不能被解析,一时间
public static Duration between(Temporal startInclusive, Temporal endExclusive)
Duration
表示两个时间对象之间的时间。
这计算了两个时间对象之间的持续时间。如果对象是不同类型的,则根据第一个对象的类型计算持续时间。例如,如果第一个参数是一个LocalTime
第二参数转换为LocalTime
。
指定的时间对象必须支持SECONDS
单元。完整准确,无论是NANOS
单元或NANO_OF_SECOND
字段应该支持。
这种方法的结果可以是一个负周期,如果结束之前开始。为了保证研究结果获得阳性时间的电话abs()
。
startInclusive
-启动瞬间,包容,不为空
endExclusive
结束的瞬间,独家,不空
Duration
,不空
DateTimeException
如果世间万物的秒之间不能得到
ArithmeticException
如果计算超过
Duration
容量
public long get(TemporalUnit unit)
get
接口
TemporalAmount
unit
-其中
TemporalUnit
返回值
DateTimeException
如果单位不支持
UnsupportedTemporalTypeException
如果单位不支持
public List<TemporalUnit> getUnits()
支持单位SECONDS
,和NANOS
。他们是在以秒回来,Nano。
这套可结合使用get(TemporalUnit)
访问期间整个国家。
getUnits
接口
TemporalAmount
public boolean isZero()
一个Duration
表示一个有向距离上的两点之间的时间线,因此可以正、零或负。这种方法检查长度是否为零。
public boolean isNegative()
一个Duration
表示一个有向距离上的两点之间的时间线,因此可以正、零或负。这种方法检查长度是否小于零。
public long getSeconds()
时间的长度是使用两个领域-秒和纳秒存储。纳秒部分是从0到999999999的值是在秒的长度调整。总时间是通过调用此方法,getNano()
定义。
一个Duration
表示一个有向距离在时间线上两点之间。负的持续时间是由秒部分的负符号表示的。持续时间为1纳秒存储为1秒加999999999纳秒。
public int getNano()
时间的长度是使用两个领域-秒和纳秒存储。纳秒部分是从0到999999999的值是在秒的长度调整。总时间是通过调用此方法,getSeconds()
定义。
一个Duration
表示一个有向距离在时间线上两点之间。负的持续时间是由秒部分的负符号表示的。持续时间为1纳秒存储为1秒加999999999纳秒。
public Duration withSeconds(long seconds)
这将返回一个持续时间与指定的秒,保持这个持续时间的第二部分的纳米。
此实例是不可变的,不受此方法调用的影响。
seconds
-代表秒,可能是负面的
Duration
基于这一时期与请求的秒,不空
public Duration withNanos(int nanoOfSecond)
这将返回一个持续时间与指定的第二,保留了这一持续时间的一部分。
此实例是不可变的,不受此方法调用的影响。
nanoOfSecond
-二代表纳米,从0到999999999
Duration
期与第二请求纳米,不空
DateTimeException
如果二纳米是无效的
public Duration plus(Duration duration)
此实例是不可变的,不受此方法调用的影响。
duration
-持续时间增加,是积极的还是消极的,不是空的
Duration
时间与指定的持续时间增加,不为空
ArithmeticException
如果数值溢出时
public Duration plus(long amountToAdd, TemporalUnit unit)
持续时间量以指定单位测量。只有一个子集的单位接受这种方法。单位必须有一个exact duration或ChronoUnit.DAYS
作为24小时。其他单位抛出一个异常。
此实例是不可变的,不受此方法调用的影响。
amountToAdd
-月经量,以单位来衡量的,积极的或消极的
unit
-单位时间测量,必须有一个确切的时间,没有空
Duration
时间与指定的持续时间增加,不为空
UnsupportedTemporalTypeException
如果单位不支持
ArithmeticException
如果数值溢出时
public Duration plusDays(long daysToAdd)
天数乘以86400,以获得秒数。这是基于一天的标准定义为24小时。
此实例是不可变的,不受此方法调用的影响。
daysToAdd
-加天,阳性或阴性
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration plusHours(long hoursToAdd)
此实例是不可变的,不受此方法调用的影响。
hoursToAdd
-加小时,阳性或阴性
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration plusMinutes(long minutesToAdd)
此实例是不可变的,不受此方法调用的影响。
minutesToAdd
-加分钟,阳性或阴性
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration plusSeconds(long secondsToAdd)
此实例是不可变的,不受此方法调用的影响。
secondsToAdd
-加秒,阳性或阴性
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration plusMillis(long millisToAdd)
此实例是不可变的,不受此方法调用的影响。
millisToAdd
-添加毫秒,阳性或阴性
Duration
与指定的毫秒时间增加,不为空
ArithmeticException
如果数值溢出时
public Duration plusNanos(long nanosToAdd)
此实例是不可变的,不受此方法调用的影响。
nanosToAdd
-添加纳秒,阳性或阴性
Duration
时间与指定的纳秒补充道,不空
ArithmeticException
如果数值溢出时
public Duration minus(Duration duration)
此实例是不可变的,不受此方法调用的影响。
duration
-时间减去的,是积极的还是消极的,不是空的
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration minus(long amountToSubtract, TemporalUnit unit)
持续时间量以指定单位测量。只有一个子集的单位接受这种方法。单位必须有一个exact duration或ChronoUnit.DAYS
作为24小时。其他单位抛出一个异常。
此实例是不可变的,不受此方法调用的影响。
amountToSubtract
-月经量,以单位来衡量的,积极的或消极的
unit
-单位时间测量,必须有一个确切的时间,没有空
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration minusDays(long daysToSubtract)
天数乘以86400,以获得秒数减去。这是基于一天的标准定义为24小时。
此实例是不可变的,不受此方法调用的影响。
daysToSubtract
-减去天,阳性或阴性
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration minusHours(long hoursToSubtract)
小时数乘以3600,以获得秒数减去。
此实例是不可变的,不受此方法调用的影响。
hoursToSubtract
-减小时,阳性或阴性
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration minusMinutes(long minutesToSubtract)
小时数乘以60,以获得秒数减去。
此实例是不可变的,不受此方法调用的影响。
minutesToSubtract
-减去分钟,阳性或阴性
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration minusSeconds(long secondsToSubtract)
此实例是不可变的,不受此方法调用的影响。
secondsToSubtract
-减去秒,阳性或阴性
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration minusMillis(long millisToSubtract)
此实例是不可变的,不受此方法调用的影响。
millisToSubtract
-减去毫秒,阳性或阴性
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration minusNanos(long nanosToSubtract)
此实例是不可变的,不受此方法调用的影响。
nanosToSubtract
-减去纳秒,阳性或阴性
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Duration multipliedBy(long multiplicand)
此实例是不可变的,不受此方法调用的影响。
multiplicand
-倍增时间的价值,积极的或消极的
Duration
时间乘以指定的标量,不空
ArithmeticException
如果数值溢出时
public Duration dividedBy(long divisor)
此实例是不可变的,不受此方法调用的影响。
divisor
-分时间的价值,是积极的还是消极的,不为零
Duration
时间除以指定的因子,不空
ArithmeticException
如果除数为零或者数值溢出时
public Duration negated()
这种方法交换了这个持续时间的总长度的符号。例如,PT1.3S
将返回为PT-1.3S
。
此实例是不可变的,不受此方法调用的影响。
Duration
量否定的基础,不为空
ArithmeticException
如果数值溢出时
public Duration abs()
此方法返回一个积极的持续时间,有效地删除符号从任何负的总长度。例如,PT-1.3S
将返回为PT1.3S
。
此实例是不可变的,不受此方法调用的影响。
Duration
为主,不为空
ArithmeticException
如果数值溢出时
public Temporal addTo(Temporal temporal)
这将返回一个相同的可观察类型的时间对象作为输入,这个持续时间增加。
在大多数情况下,更清晰的用Temporal.plus(TemporalAmount)
反向调用模式。
这两条线是等价的,但第二种方法是建议日期时间= thisduration补充(日期);日期时间=日期。加(thisduration);
计算将增加秒,然后纳米。只有非零的金额将被添加。
此实例是不可变的,不受此方法调用的影响。
addTo
接口
TemporalAmount
temporal
-调整时间的对象,不为空
DateTimeException
如果无法添加
ArithmeticException
如果数值溢出时
public Temporal subtractFrom(Temporal temporal)
这将返回一个相同的可观察类型的时间对象作为输入,这个持续时间减去。
在大多数情况下,更清晰的用Temporal.minus(TemporalAmount)
反向调用模式。
这两条线是等价的,但第二种方法是建议日期时间= thisduration减去(日期);日期时间=日期减去(thisduration);
计算将减秒,然后纳米。只有非零的金额将被添加。
此实例是不可变的,不受此方法调用的影响。
subtractFrom
接口
TemporalAmount
temporal
-调整时间的对象,不为空
DateTimeException
如果不能减
ArithmeticException
如果数值溢出时
public long toDays()
这将返回在持续时间除以秒数的总数的86400。这是基于一天的标准定义为24小时。
此实例是不可变的,不受此方法调用的影响。
public long toHours()
这将返回在持续时间除以秒数的总数的3600。
此实例是不可变的,不受此方法调用的影响。
public long toMinutes()
这返回在持续时间除以秒数除以60的总分钟数。
此实例是不可变的,不受此方法调用的影响。
public long toMillis()
如果这个时间太大了long
毫秒,然后抛出一个异常。
如果这个时间大于毫秒级精度,然后转换将多余的精度信息通过一百万纳秒的数量是受整数除法。
ArithmeticException
如果数值溢出时
public long toNanos()
long
。
如果这个时间太大了long
纳秒,然后抛出一个异常。
ArithmeticException
如果数值溢出时
public int compareTo(Duration otherDuration)
Duration
。
比较是基于总长度的持续时间。这是“等于”一致,所定义的Comparable
。
compareTo
接口
Comparable<Duration>
otherDuration
-相比其他时间,不空
public boolean equals(Object otherDuration)
Duration
。
比较是基于总长度的持续时间。
equals
方法重写,继承类
Object
otherDuration
-其他时间、空返回false
Object.hashCode()
,
HashMap
public int hashCode()
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String toString()
PT8H6M12.345S
。
返回字符串的格式将PTnHnMnS
,其中n是相关的小时,分钟和秒的时间部分。任何分数秒都被放置在一个小数点后的小数点后。如果一个部分有一零个值,则省略。小时,分,秒都会有相同的标志。
实例:
“20.345秒”--“pt20.345s“15分钟”(15×60秒)--“pt15m”“10小时”(10×3600秒)--“pt10h”“2天”(2×86400秒)--“pt48h”注意24小时倍数不输出天避免混乱与
Period
。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.