【发布时间】:2014-10-19 18:53:01
【问题描述】:
我想获得一个代表 3 年持续时间的 java.time.Duration 实例,
我找到了两种方法(见下面的代码)。
public static void main(String[] args) {
Duration d1 = Duration.of(3, ChronoUnit.YEARS); //Runtime Exception
Duration d2 = ChronoUnit.YEARS.getDuration().multipliedBy(3);
System.out.println("d2="+d2.toDays()); //OUTPUT: d2=1095
}
第一种方式,d1,在运行时抛出以下异常:
第二种方式,d2,按预期工作。
造成这种差异的原因是什么?
【问题讨论】:
-
你所说的就是预期的概念是没有意义的。 3年没有已知的天数。看起来新界面正试图阻止你犯你称之为“按预期工作”的错误
-
你应该改用句号。
-
@assylias 我一开始也是这么想的,但
Period不是有“重复”的意思吗?
标签: java datetime java-8 java-time