← All recipes
Moderne licensed

Use TimeProvider instead of DateTime/DateTimeOffset static properties

Recipe IDOpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.UseTimeProviderArtifactOpenRewrite.Recipes.CSharp.Migration.Dotnet

Replace DateTime.UtcNow, DateTime.Now, DateTimeOffset.UtcNow, and DateTimeOffset.Now with TimeProvider.System.GetUtcNow()/GetLocalNow() equivalents. TimeProvider enables testability and consistent time sources. Available since .NET 8.

Single recipemodernizationcsharpdotnetProprietary

Usage

This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.

mod run . --recipe OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.UseTimeProvider

If the recipe isn’t available locally, install it with:

mod config recipes nuget install OpenRewrite.Recipes.CSharp.Migration.Dotnet