public interface ChronoPeriod extends TemporalAmount
该接口在日历系统中建模基于日期的时间量。 虽然大多数日历系统使用几年,几个月和几天,但有些不是。 因此,此接口仅由Chronology
定义的一组受支持单元进行Chronology
。 一组支持的单位是固定的给定的年表。 受支持单元的数量可以设置为零。
这个时期被模拟为一定的时间量,这意味着该时期的各个部分可能是负面的。
Modifier and Type | Method and Description |
---|---|
Temporal |
addTo(Temporal temporal)
将此时段添加到指定的时间对象。
|
static ChronoPeriod |
between(ChronoLocalDate startDateInclusive, ChronoLocalDate endDateExclusive)
获得一个由两个日期之间的时间量
ChronoPeriod ChronoPeriod。
|
boolean |
equals(Object obj)
检查这个时期是否等于另一个时期,包括年表。
|
long |
get(TemporalUnit unit)
获取所请求单元的值。
|
Chronology |
getChronology()
获取定义支持的单位意义的年表。
|
List<TemporalUnit> |
getUnits()
获取此期间支持的单位集。
|
int |
hashCode()
此期间的哈希码。
|
default boolean |
isNegative()
检查此期间的受支持单位是否为负。
|
default boolean |
isZero()
检查此期间所有受支持的单位是否为零。
|
ChronoPeriod |
minus(TemporalAmount amountToSubtract)
返回此期间的副本,并减去指定的时间段。
|
ChronoPeriod |
multipliedBy(int scalar)
返回一个新的实例,其中在此期间的每个金额乘以指定的标量。
|
default ChronoPeriod |
negated()
返回一个新的实例,每个金额在此期间被否定。
|
ChronoPeriod |
normalized()
返回此期间的副本,并将每个单位的金额归一化。
|
ChronoPeriod |
plus(TemporalAmount amountToAdd)
返回指定期间添加的此期间的副本。
|
Temporal |
subtractFrom(Temporal temporal)
从指定的时间对象中减去这个时间段。
|
String |
toString()
将此期间输出为
String 。
|
static ChronoPeriod between(ChronoLocalDate startDateInclusive, ChronoLocalDate endDateExclusive)
ChronoPeriod
ChronoPeriod。
包含开始日期,但结束日期不是。 期间使用ChronoLocalDate.until(ChronoLocalDate)
计算 。 因此,计算是具体的年表。
使用第一个日期的年表。 第二个日期的年表被忽略,在计算开始之前将日期转换为目标年表系统。
如果结束在开始之前,该方法的结果可以是负期。 在大多数情况下,每个支持的字段中的正/负号将相同。
startDateInclusive
- 开始日期(含),指定计算的年表,不为空
endDateExclusive
- 结束日期,排除,任何时间顺序,不为空
ChronoLocalDate.until(ChronoLocalDate)
long get(TemporalUnit unit)
get
在界面
TemporalAmount
unit
- 为其返回值的
TemporalUnit
DateTimeException
- 如果不支持本机
UnsupportedTemporalTypeException
- 如果不支持本机
List<TemporalUnit> getUnits()
受支持的单位是具体的年表。 他们通常是YEARS
, MONTHS
和DAYS
。 他们从最大到最小的顺序返回。
该集合可以与get(TemporalUnit)
一起使用以访问整个周期的状态。
getUnits
在界面
TemporalAmount
Chronology getChronology()
这个时期是按年表定义的。 它控制支持的单位,并限制相同年代的ChronoLocalDate
实例的加/减。
default boolean isZero()
default boolean isNegative()
ChronoPeriod plus(TemporalAmount amountToAdd)
如果指定的金额是ChronoPeriod
那么它必须具有与这个时期相同的年表。 实现可以选择接受或拒绝其他TemporalAmount
实现。
此实例是不可变的,不受此方法调用的影响。
amountToAdd
- 添加的期间,不为null
ChronoPeriod
基于此期间添加的请求时间,不为null
ArithmeticException
- 如果发生数字溢出
ChronoPeriod minus(TemporalAmount amountToSubtract)
如果指定的金额是ChronoPeriod
那么它必须与这个时期具有相同的年表。 实施可以选择接受或拒绝其他TemporalAmount
实现。
此实例是不可变的,不受此方法调用的影响。
amountToSubtract
- 扣除时间,不为空
ChronoPeriod
基于此期间减去所请求的周期,不为null
ArithmeticException
- 如果发生数字溢出
ChronoPeriod multipliedBy(int scalar)
这返回一个周期,每个支持的单位分别乘以。 例如,“2年-3个月4天”乘以3将返回“6年-9个月12天”。 不执行归一化。
scalar
- 要乘以的标量,不为空
ChronoPeriod
基于这个时期,数量乘以标量,不为null
ArithmeticException
- 如果发生数字溢出
default ChronoPeriod negated()
这返回一个期间,每个受支持的单位被单独否定。 例如,“2年-3个月4天”将被否定为“-2年3个月-4日”。 不执行归一化。
ChronoPeriod
基于这个时期,金额被否定,不为零
ArithmeticException
- 如果发生数字溢出,只有在其中一个单位的值为
Long.MIN_VALUE
ChronoPeriod normalized()
标准化过程特定于每个日历系统。 例如,在ISO日历系统中,这几年和几个月是正常化的,但日子不是这样,“15个月”将被归一化为“1年3个月”。
此实例是不可变的,不受此方法调用的影响。
ChronoPeriod
基于这个时期,每个单位的数量标准化,不为零
ArithmeticException
- 如果发生数字溢出
Temporal addTo(Temporal temporal)
这返回与添加了此周期的输入相同的可观察类型的时间对象。
在大多数情况下,通过使用Temporal.plus(TemporalAmount)
来更正呼叫模式。
// these two lines are equivalent, but the second approach is recommended
dateTime = thisPeriod.addTo(dateTime);
dateTime = dateTime.plus(thisPeriod);
指定的时间必须与这个时期有相同的年表。 这返回了添加了非零支持单位的时间。
此实例是不可变的,不受此方法调用的影响。
addTo
在界面
TemporalAmount
temporal
- 要调整的时间对象,不为null
DateTimeException
- 如果无法添加
ArithmeticException
- 如果发生数字溢出
Temporal subtractFrom(Temporal temporal)
这返回与减去该周期的输入相同的可观察类型的时间对象。
在大多数情况下,通过使用Temporal.minus(TemporalAmount)
来更正呼叫模式。
// these two lines are equivalent, but the second approach is recommended
dateTime = thisPeriod.subtractFrom(dateTime);
dateTime = dateTime.minus(thisPeriod);
指定的时间必须与这个时期有相同的年表。 这返回一个时间,减去非零支持的单位。
此实例是不可变的,不受此方法调用的影响。
subtractFrom
在界面
TemporalAmount
temporal
- 要调整的时间对象,不为null
DateTimeException
- 如果不能减去
ArithmeticException
- 如果发生数字溢出
boolean equals(Object obj)
将这个时期与另一个时期进行比较,确保类型,每个数量和年表是相同的。 请注意,这意味着“15个月”不等于“1年3个月”。
equals
在类别
Object
obj
- 要检查的对象,null返回false
Object.hashCode()
, HashMap
int hashCode()
hashCode
在
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)