This is a base class that provides an abstraction of time. A common way to check the current time is by using DateTime.UtcNow or DateTimeOffset.UtcNow. However, these types don't provide any control over what's considered "now." Why would you want to control that? Testability. For example, consider you're writing an event tracking application that provides reminders 1 day before the event. The app's logic is to check the event time every hour, and alert the user once it's 24 hours before the event. As you write your tests for the app, you would provide your own type that wraps DateTimeOffset.UtcNow to test this logic, but now .NET provides this abstraction class for you., Learn more about: Dates, times, and time zones, Free downloads for building and running .NET apps on Linux, macOS, and Windows. Runtimes, SDKs, and developer packs for .NET Framework, .NET, and ASP.NET..