【发布时间】:2021-09-02 15:11:33
【问题描述】:
从 Java 8 更新到 11 时,我注意到以下差异,这可能会严重破坏逻辑流程:
给定以下代码
final Instant now = Instant.now();
System.out.println(now.minusNanos(1).isBefore(now));
System.out.println(Date.from(now.minusNanos(1)).before(Date.from(now)));
在 Java 8(corretto 1.8.0_232)上执行打印:
true
true
相反的 Java 11 (corretto 11.0.0.5_10) 打印:
true
false
所以我的问题是:为什么会发生这种情况?它是否记录在某处?
【问题讨论】: