KZDev.PrimeTime
1.0.0
Prefix Reserved
dotnet add package KZDev.PrimeTime --version 1.0.0
NuGet\Install-Package KZDev.PrimeTime -Version 1.0.0
<PackageReference Include="KZDev.PrimeTime" Version="1.0.0" />
<PackageVersion Include="KZDev.PrimeTime" Version="1.0.0" />
<PackageReference Include="KZDev.PrimeTime" />
paket add KZDev.PrimeTime --version 1.0.0
#r "nuget: KZDev.PrimeTime, 1.0.0"
#:package KZDev.PrimeTime@1.0.0
#addin nuget:?package=KZDev.PrimeTime&version=1.0.0
#tool nuget:?package=KZDev.PrimeTime&version=1.0.0
KZDev.PrimeTime
KZDev.PrimeTime is the full PrimeTime stack for .NET: a testable production clock abstraction (IPrimeClock), interval and (on modern .NET) local time-of-day timers with explicit daylight-saving behavior, and NodaTime-first APIs (Instant, Duration, LocalTime, ZonedDateTime, and timer overloads).
Use the namespace KZDev.PrimeTime. This package pulls in NodaTime (see your lock file for the resolved version). There is no separate KZDev.PrimeTime.NodaTime package.
If you must avoid a NodaTime dependency, use KZDev.SystemClock.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,NodaTime, plusMicrosoft.Bcl.TimeProviderand related polyfills onnetstandard2.0.
Installation
dotnet add package KZDev.PrimeTime
Or add a PackageReference to KZDev.PrimeTime and set the version to the release you validate against (central package management or a fixed version).
Quick start (dependency injection)
using KZDev.PrimeTime;
using Microsoft.Extensions.DependencyInjection;
IServiceCollection services = new ServiceCollection();
services.AddPrimeClock();
ServiceProvider provider = services.BuildServiceProvider();
IPrimeClock clock = provider.GetRequiredService<IPrimeClock>();
// NodaTime-first “now”
NodaTime.Instant now = clock.NowInstant;
Default registration:
IPrimeClock→PrimeClocksingleton, backed by NodaTime’sIClock(SystemClock.Instanceunless you replaceIClockfirst).IPrimeTime→ same instance asIPrimeClock.
Testing package
Testing APIs are provided by KZDev.PrimeTime.Testing. Add that package when you need virtual-time test types such as IPrimeTestClock and PrimeTestClock.
Why NodaTime here?
The superset package exposes additional members on IPrimeClock (for example NowInstant, LocalZonedNowInstant, Duration-based RegisterTimer, and LocalTime-based RegisterTimeOfDay) that are not present on the SystemClock assembly. That keeps calendar and wall-time semantics aligned with NodaTime where you already use it.
Documentation and source
- Product documentation (including package comparison and guides).
- Source and issues: github.com/kzdev-net/kzdev.primetime
- License: MIT (see package metadata and repository
LICENSE).
See also
- KZDev.SystemClock.PrimeTime — BCL /
TimeProvidersubset, namespaceKZDev.SystemClock.PrimeTime. - KZDev.PrimeTime.Testing — testing/virtual-time APIs for
KZDev.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)
- NodaTime (>= 3.3.2)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
net10.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.9)
- NodaTime (>= 3.3.2)
-
net8.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.9)
- NodaTime (>= 3.3.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on KZDev.PrimeTime:
| Package | Downloads |
|---|---|
|
KZDev.PrimeTime.Testing
Virtual-time test clock and contracts for KZDev.PrimeTime (NodaTime). |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 0 | 6/29/2026 |
- KZDev.PrimeTime v1.0.0 — testable clocks and timers with full NodaTime support.