【问题标题】:How do I create a Clock variable - java.time如何创建时钟变量 - java.time
【发布时间】:2021-02-15 04:26:36
【问题描述】:

我正在使用以下包:https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html

如何创建时钟变量?我试过了:

Clock clock = new Clock();

但我得到了错误:

TimeCheck.java:14: 错误:时钟是抽象的;无法实例化

我也试过私人时钟;在 main() 函数之外,但是当我运行 main() 函数并尝试 clock.instant() 它说:

TimeCheck.java:16: 错误:不能从静态上下文引用非静态变量时钟

【问题讨论】:

  • 您链接到的文档中有大量的工厂方法。您尝试过其中任何一个吗?
  • 你具体想要什么样的Clock?您希望Clock 的行为如何?

标签: java datetime


【解决方案1】:

java.time 类自动使用默认的Clock 对象。

Instant now = Instant.now() ;  // Default `Clock` used implicitly.

如果你想改变行为,你只需要获得Clock。通常用于测试或演示。

java.time 框架避免使用new。而是寻找工厂方法。

查看Clock 类的静态方法。您会找到方法为您提供不同节奏的各种时钟,或固定到特定时刻,或持续延迟运行。

Clock fixedClock = Clock.fixed( Instant.EPOCH , ZoneId.of( "Asia/Kolkata" ) ) ;
Instant nowFake = Instant.now( fixedClock ) ;

【讨论】:

  • 谢谢!很有帮助
猜你喜欢
  • 2020-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多