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.