【发布时间】:2018-06-19 15:22:09
【问题描述】:
为什么下面的代码在打印出来时会返回两个不同的Instant 值?
Timestamp currentTime = Timestamp.from(Instant.now());
System.out.println(currentTime.toInstant());
System.out.println(Instant.now());
上面两行同时打印出来的时候,会给我:
2018-01-10T12:22:46.168Z
2018-01-10T12:22:46.236Z
为什么打印的输出不一样,即使它们被同时调用?
【问题讨论】:
-
因为时间过去了……
-
嗯,它不是在完全相同的时间调用的。不是吗?
-
顺便说一句,没有必要将现代 java.time 类
Instant与麻烦笨拙的类java.sql.Timestamp混在一起。 java.time 类之外的所有日期时间类现在都是遗留的,应该避免使用。myPreparedStatement.setObject( … , myInstant )和myResultSet.getObject( … , Instant.class ) -
“即使它们同时被调用?” - 你为什么这么认为?那句话没有逻辑。