gpt4 book ai didi

java - 哪个 `Clock` 实现是 java.time 中的默认实现?

转载 作者:行者123 更新时间:2023-12-01 12:47:49 25 4
gpt4 key购买 nike

Java 8 及更高版本中内置的 java.time 框架包括 Clock 类(class)。这个类提供了一些对测试我们的日期时间处理代码有用的变体。

Instant.now( Clock.fixed​( myInstant , myZoneId ) )
其中 Clock实例表示在 java.time 调用中隐式使用的默认值,其中我们没有指定 Clock ?
Instant.now()
我想默认是:
  • systemDefaultZone()
  • systemUTC()

  • ……但文档没有说明是哪个。
    在进行单元测试时,有时我们需要一个行为改变的时钟。但是当我们想显式地传递一个 Clock 时提供默认行为的对象,我们使用什么?

    最佳答案

    Instant.now()的源代码1,如果您使用 IDE2,您可以轻松找到自己:

    public static Instant now() {
    return Clock.systemUTC().instant();
    }
    1) 从 OpenJDK 14 复制
    2) 例如在 Eclipse 中,您将光标放在 now() 上然后按F3查看源代码。
    保证所有兼容的 Java 版本都会这样做,因为它是为该方法定义的契约的一部分,即 记录在案 now() 的 javadoc 中:

    This will query the system UTC clock to obtain the current instant.


    该链接指向 Clock.systemUTC() .

    关于java - 哪个 `Clock` 实现是 java.time 中的默认实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62494522/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com