为什么 Instant 不支持 ChronoUnit.YEARS 的操作?
这让我很意外:
> Clock clock = Clock.systemUTC();
> Instant.now(clock).minus(3, ChronoUnit.DAYS);
java.time.Instant res4 = 2016-10-04T00:57:20.840Z
> Instant.now(clock).minus(3, ChronoUnit.YEARS);
java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Years
作为解决方法,我必须这样做:
> Instant.now(clock).atOffset(ZoneOffset.UTC).minus(3, ChronoUnit.YEARS).toInstant();
java.time.Instant res11 = 2013-10-07T01:02:56.361Z
我很好奇为什么Instant不支持YESTURE。开发人员只是放弃了吗?
(在我的实际代码中,我试图减去一个,但引用的Instant方法是最终调用的方法)。Period.ofYears(3)