Use TimeProvider instead of DateTime/DateTimeOffset static properties
Recipe ID
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.UseTimeProviderArtifactOpenRewrite.Recipes.CSharp.Migration.DotnetReplace 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.UseTimeProviderIf the recipe isn’t available locally, install it with:
mod config recipes nuget install OpenRewrite.Recipes.CSharp.Migration.Dotnet