首页 > 解决方案 > 如何创建时钟变量 - java.time

问题描述

我正在使用以下包: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:错误:不能从静态上下文引用非静态变量时钟

标签: javadatetime

解决方案


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 ) ;

推荐阅读