java.time 中默认使用哪个“Clock”实现?
Which `Clock` implementation is the default in java.time?
java.time 框架内置于 Java 8 及更高版本中,包括 Clock
class。 class 提供了几个对测试我们的日期时间处理代码有用的变体。
Instant.now( Clock.fixed( myInstant , myZoneId ) )
哪个 Clock
实例表示在 java.time 调用中隐式使用的默认值,其中我们未指定 Clock
?
Instant.now()
我想默认值是:
…但是文档没有说明是哪个。
进行单元测试时,有时我们需要一个行为有所改变的时钟。但是当我们想显式传递一个给出默认行为的Clock
对象时,我们用什么?
Instant.now()
1 的源代码,如果您使用 IDE2[=35=,您可以轻松找到自己]:
public static Instant now() {
return Clock.systemUTC().instant();
}
1) 从 OpenJDK 复制 14
2) 在 Eclipse 中,将光标放在 now()
上并按 F3 以查看源代码。
在 IntelliJ 中,按 F4,或选择“查看”>“跳转到源代码”,或按 Mac ⌘+ 单击。
保证 Java 的所有兼容版本都会这样做,因为它是为该方法定义的合同的一部分,即它是如此 记录 在 now()
的 javadoc 中:
This will query the system UTC clock to obtain the current instant.
link 导致 Clock.systemUTC()
。
java.time 框架内置于 Java 8 及更高版本中,包括 Clock
class。 class 提供了几个对测试我们的日期时间处理代码有用的变体。
Instant.now( Clock.fixed( myInstant , myZoneId ) )
哪个 Clock
实例表示在 java.time 调用中隐式使用的默认值,其中我们未指定 Clock
?
Instant.now()
我想默认值是:
…但是文档没有说明是哪个。
进行单元测试时,有时我们需要一个行为有所改变的时钟。但是当我们想显式传递一个给出默认行为的Clock
对象时,我们用什么?
Instant.now()
1 的源代码,如果您使用 IDE2[=35=,您可以轻松找到自己]:
public static Instant now() {
return Clock.systemUTC().instant();
}
1) 从 OpenJDK 复制 14
2) 在 Eclipse 中,将光标放在 now()
上并按 F3 以查看源代码。
在 IntelliJ 中,按 F4,或选择“查看”>“跳转到源代码”,或按 Mac ⌘+ 单击。
保证 Java 的所有兼容版本都会这样做,因为它是为该方法定义的合同的一部分,即它是如此 记录 在 now()
的 javadoc 中:
This will query the system UTC clock to obtain the current instant.
link 导致 Clock.systemUTC()
。