KZDev.SystemClock.PrimeTime
1.0.0
Prefix Reserved
dotnet add package KZDev.SystemClock.PrimeTime --version 1.0.0
NuGet\Install-Package KZDev.SystemClock.PrimeTime -Version 1.0.0
<PackageReference Include="KZDev.SystemClock.PrimeTime" Version="1.0.0" />
<PackageVersion Include="KZDev.SystemClock.PrimeTime" Version="1.0.0" />
<PackageReference Include="KZDev.SystemClock.PrimeTime" />
paket add KZDev.SystemClock.PrimeTime --version 1.0.0
#r "nuget: KZDev.SystemClock.PrimeTime, 1.0.0"
#:package KZDev.SystemClock.PrimeTime@1.0.0
#addin nuget:?package=KZDev.SystemClock.PrimeTime&version=1.0.0
#tool nuget:?package=KZDev.SystemClock.PrimeTime&version=1.0.0
KZDev.SystemClock.PrimeTime
KZDev.SystemClock.PrimeTime is the strict BCL subset of PrimeTime: the same production clock model (IPrimeClock, PrimeClock, timer registrations, and options types) using TimeProvider and DateTimeOffset / TimeSpan only—without a NodaTime dependency.
Use the namespace KZDev.SystemClock.PrimeTime.
For NodaTime overloads on IPrimeClock (for example Instant, Duration, and LocalTime timer surfaces), use KZDev.PrimeTime instead. Do not reference both packages in the same application.
Requirements
- Target frameworks:
net10.0,net8.0, andnetstandard2.0(with BCL polyfills where needed). - Dependencies:
Microsoft.Extensions.DependencyInjection, plusMicrosoft.Bcl.TimeProviderand related polyfills onnetstandard2.0.
Installation
dotnet add package KZDev.SystemClock.PrimeTime
Or add a PackageReference to KZDev.SystemClock.PrimeTime and set the version to the release you validate against (central package management or a fixed version).
Quick start (dependency injection)
using KZDev.SystemClock.PrimeTime;
using Microsoft.Extensions.DependencyInjection;
IServiceCollection services = new ServiceCollection();
services.AddPrimeClock();
ServiceProvider provider = services.BuildServiceProvider();
IPrimeClock clock = provider.GetRequiredService<IPrimeClock>();
System.DateTimeOffset utcNow = clock.UtcNowDateTimeOffset;
Default registration:
IPrimeClock→PrimeClocksingleton, backed byTimeProvider.Systemunless you registerTimeProviderfirst.IPrimeTime→ same instance asIPrimeClock.
Testing package
Testing APIs are provided by KZDev.SystemClock.PrimeTime.Testing. Add that package when you need virtual-time test types such as IPrimeTestClock and PrimeTestClock.
SystemClock-specific surface
The BCL package adds IPrimeClock.LocalScheduleTimeZone for local calendar time-of-day scheduling (when available on your target framework). The NodaTime superset does not declare that member; there, local scheduling follows the zoned NodaTime view (LocalZonedNowInstant.Zone).
Documentation and source
- Product documentation (package comparison and guides).
- Source and issues: github.com/kzdev-net/kzdev.primetime
- License: MIT (see package metadata and repository
LICENSE).
See also
- KZDev.PrimeTime — NodaTime superset, namespace
KZDev.PrimeTime. - KZDev.SystemClock.PrimeTime.Testing — testing/virtual-time APIs for
KZDev.SystemClock.PrimeTime.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.9)
- Microsoft.Bcl.TimeProvider (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection (>= 10.0.9)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
net10.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.9)
-
net8.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.9)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on KZDev.SystemClock.PrimeTime:
| Package | Downloads |
|---|---|
|
KZDev.SystemClock.PrimeTime.Testing
Virtual-time test clock and contracts for KZDev.SystemClock.PrimeTime (BCL subset). |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 0 | 6/29/2026 |
- KZDev.SystemClock.PrimeTime v1.0.0 — testable clocks and timers with minimal BCL dependencies.