Clock
大多数基于时间的对象提供无参数now\(\)
方法,该方法使用系统时钟和默认timezone提供当前日期和时间。这些基于时间的对象还提供了一个单参数now\(Clock\)
方法,该方法使您可以传递备用Clock。
当前日期和时间取决于timezone,对于 Global 化的应用程序,必须使用Clock
才能确保使用正确的timezone创建日期/时间。因此,尽管Clock
类的使用是可选的,但此功能允许您测试其他timezone的代码,或者使用时间不变的固定时钟来测试代码。
Clock
类是抽象的,因此无法创建它的实例。以下工厂方法对于测试很有用。
-
Clock.offset(Clock, Duration)返回由指定的
Duration
offset的时钟。 -
Clock.systemUTC()返回代表 Greenwich/ UTC timezone的时钟。
-
Clock.fixed(Instant, ZoneId)始终返回相同的
Instant
。对于这个时钟,时间静止不动。