Clock
Most temporal-based objects provide a no-argument now()
method that provides the current date and time using the system clock and the default time zone. These temporal-based objects also provide a one-argument now(Clock)
method that allows you to pass in an alternative Clock
.
The current date and time depends on the time-zone and, for globalized applications, a Clock
is necessary to ensure that the date/time is created with the correct time-zone. So, although the use of the Clock
class is optional, this feature allows you to test your code for other time zones, or by using a fixed clock, where time does not change.
The Clock
class is abstract, so you cannot create an instance of it. The following factory methods can be useful for testing.
Clock.offset(Clock, Duration)
returns a clock that is offset by the specifiedDuration
.Clock.systemUTC()
returns a clock representing the Greenwich/UTC time zone.Clock.fixed(Instant, ZoneId)
always returns the same Instant. For this clock, time stands still.
Last update: January 27, 2022