Это было неожиданно для меня:
> 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 не поддерживает ЛЕТ. Разве разработчики просто отказались от этого?
(В моем фактическом коде я попытался вычесть Period.ofYears(3)
, но цитируемые Мгновенные методы - это те, которые вызываются в конце).