-
- All Superinterfaces:
-
TemporalAmount
- 所有已知实现类:
-
Period
public interface ChronoPeriod extends TemporalAmount
基于日期的时间,例如任意年代的“3年,4个月和5天”,旨在用于高级全球化用例。该接口在日历系统中建模基于日期的时间量。 虽然大多数日历系统使用几年,几个月和几天,但有些不是。 因此,此接口仅由
Chronology定义的一组受支持单元进行Chronology。 一组支持的单位是固定的给定的年表。 受支持单元的数量可以设置为零。这个时期被模拟为一定的时间量,这意味着该时期的各个部分可能是负面的。
- 实现要求:
- 该接口必须小心实施,以确保其他类正确运行。 可以实例化的所有实现必须是最终的,不可变的和线程安全的。 子类应尽可能可序列化。
- 从以下版本开始:
- 1.8
-
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 Default Methods Modifier and Type 方法 描述 TemporaladdTo(Temporal temporal)将此时段添加到指定的时间对象。static ChronoPeriodbetween(ChronoLocalDate startDateInclusive, ChronoLocalDate endDateExclusive)获得一个ChronoPeriod包括两个日期之间的时间量。booleanequals(Object obj)检查这个时期是否等于另一个时期,包括年表。longget(TemporalUnit unit)获取所请求单元的值。ChronologygetChronology()获取定义支持的单位意义的年表。List<TemporalUnit>getUnits()获取此期间支持的单位集。inthashCode()此期间的哈希码。default booleanisNegative()检查此期间的受支持单位是否为负。default booleanisZero()检查此期间所有受支持的单位是否为零。ChronoPeriodminus(TemporalAmount amountToSubtract)返回此期间的副本,并减去指定的时间段。ChronoPeriodmultipliedBy(int scalar)返回一个新的实例,其中在此期间的每个金额乘以指定的标量。default ChronoPeriodnegated()返回一个新的实例,每个金额在此期间被否定。ChronoPeriodnormalized()返回此期间的副本,并将每个单位的金额归一化。ChronoPeriodplus(TemporalAmount amountToAdd)返回指定期间添加的此期间的副本。TemporalsubtractFrom(Temporal temporal)从指定的时间对象中减去这个时间段。StringtoString()将此期间输出为String。
-
-
-
方法详细信息
-
between
static ChronoPeriod between(ChronoLocalDate startDateInclusive, ChronoLocalDate endDateExclusive)
获得一个ChronoPeriod包括两个日期之间的时间量。包含开始日期,但结束日期不是。 期间使用
ChronoLocalDate.until(ChronoLocalDate)计算。 因此,计算是具体的年表。使用第一个日期的年表。 第二个日期的年表被忽略,在计算开始之前将日期转换为目标年表系统。
如果结束在开始之前,该方法的结果可以是负期。 在大多数情况下,每个支持的字段中的正/负号将相同。
- 参数
-
startDateInclusive- 指定计算年表的开始日期,不为空 -
endDateExclusive- 结束日期,排除,任何年表,不为空 - 结果
- 此日期与结束日期之间的期间不为空
- 另请参见:
-
ChronoLocalDate.until(ChronoLocalDate)
-
get
long get(TemporalUnit unit)
- Specified by:
-
get在接口TemporalAmount - 参数
-
unit- 要为其返回值的TemporalUnit - 结果
- 单位的长期价值
- 异常
-
DateTimeException- 如果不支持本机 -
UnsupportedTemporalTypeException- 如果不支持本机
-
getUnits
List<TemporalUnit> getUnits()
获取此期间支持的单位集。受支持的单位是具体的年表。 他们通常是
YEARS,MONTHS和DAYS。 他们从最大到最小的顺序返回。该集合可以与
get(TemporalUnit)一起使用以访问整个期间的状态。- Specified by:
-
getUnits在接口TemporalAmount - 结果
- 包含支持的单位的列表,不为空
-
getChronology
Chronology getChronology()
获取定义支持的单位意义的年表。这个时期是按年表定义的。 它控制支持的单位,并限制相同年代的
ChronoLocalDate实例的加/减。- 结果
- 定义期间的年表,不为空
-
isZero
default boolean isZero()
检查此期间所有受支持的单位是否为零。- 结果
- 如果这个时期是零长度,则为真
-
isNegative
default boolean isNegative()
检查此期间的受支持单位是否为负。- 结果
- 如果这个时期的任何一个单位都是负数,则为真
-
plus
ChronoPeriod plus(TemporalAmount amountToAdd)
返回指定期间添加的此期间的副本。如果指定的金额是
ChronoPeriod那么它必须与这个时期有相同的年表。 实施可能会选择接受或拒绝其他TemporalAmount实现。此实例是不可变的,不受此方法调用的影响。
- 参数
-
amountToAdd- 添加时间,不为空 - 结果
-
一个
ChronoPeriod基于此期间添加的请求期,不为null - 异常
-
ArithmeticException- 如果发生数字溢出
-
minus
ChronoPeriod minus(TemporalAmount amountToSubtract)
返回此期间的副本,并减去指定的时间段。如果指定的金额是
ChronoPeriod那么它必须与这个时期有相同的年表。 实施可以选择接受或拒绝其他TemporalAmount实现。此实例是不可变的,不受此方法调用的影响。
- 参数
-
amountToSubtract- 扣除的时间,不为空 - 结果
-
一个
ChronoPeriod基于此期间减去所请求的周期,不为null - 异常
-
ArithmeticException- 如果发生数字溢出
-
multipliedBy
ChronoPeriod multipliedBy(int scalar)
返回一个新的实例,其中在此期间的每个金额乘以指定的标量。这返回一个周期,每个支持的单位分别乘以。 例如,“2年-3个月4天”乘以3将返回“6年-9个月12天”。 不执行归一化。
- 参数
-
scalar- 要乘以的标量,不为空 - 结果
-
一个
ChronoPeriod基于这个时期,数量乘以标量,不为null - 异常
-
ArithmeticException- 如果发生数字溢出
-
negated
default ChronoPeriod negated()
返回一个新的实例,每个金额在此期间被否定。这返回一个期间,每个受支持的单位被单独否定。 例如,“2年-3个月4天”将被否定为“-2年3个月-4日”。 不执行归一化。
- 结果
-
一个
ChronoPeriod基于这个时期,金额被否定,不为零 - 异常
-
ArithmeticException- 如果发生数字溢出,仅在其中一个单位的值为Long.MIN_VALUE
-
normalized
ChronoPeriod normalized()
返回此期间的副本,并将每个单位的金额归一化。标准化过程特定于每个日历系统。 例如,在ISO日历系统中,这几年和几个月是正常化的,但日子不是这样,“15个月”将被归一化为“1年3个月”。
此实例是不可变的,不受此方法调用的影响。
- 结果
-
一个
ChronoPeriod基于这个时期,每个单位的数量标准化,不为零 - 异常
-
ArithmeticException- 如果发生数字溢出
-
addTo
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);指定的时间必须与这个时期有相同的年表。 这返回了添加了非零支持单位的时间。
此实例是不可变的,不受此方法调用的影响。
- Specified by:
-
addTo在接口TemporalAmount - 参数
-
temporal- 要调整的时间对象,不为null - 结果
- 与调整相同类型的对象,不为空
- 异常
-
DateTimeException- 如果无法添加 -
ArithmeticException- 如果发生数字溢出
-
subtractFrom
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);指定的时间必须与这个时期有相同的年表。 这返回一个时间,减去非零支持的单位。
此实例是不可变的,不受此方法调用的影响。
- Specified by:
-
subtractFrom在接口TemporalAmount - 参数
-
temporal- 要调整的时间对象,不为空 - 结果
- 与调整相同类型的对象,不为空
- 异常
-
DateTimeException- 如果不能减去 -
ArithmeticException- 如果发生数字溢出
-
equals
boolean equals(Object obj)
检查这个时期是否等于另一个时期,包括年表。将这个时期与另一个时期进行比较,确保类型,每个数量和年表是相同的。 请注意,这意味着“15个月”不等于“1年3个月”。
- 重写:
-
equals在Object - 参数
-
obj- 要检查的对象,null返回false - 结果
- 如果这等于其他时期,则为真
- 另请参见:
-
Object.hashCode(),HashMap
-
hashCode
int hashCode()
此期间的哈希码。- 重写:
-
hashCode在Object - 结果
- 一个合适的哈希码
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
-