Clock¶
This page covers the public time utilities in Nalix.Environment.
Source mapping¶
src/Nalix.Environment/Time/Clock.cssrc/Nalix.Environment/Time/Clock.Unix.cs
What it is¶
Clock is the shared time utility for monotonic timing, UTC time access, and Unix time conversion.
Basic usage¶
DateTime now = Clock.NowUtc();
long mono = Clock.MonoTicksNow();
double ms = Clock.MonoTicksToMilliseconds(mono);
Public members¶
Properties¶
| Member | Type | Description |
|---|---|---|
TicksPerSecond |
long |
Frequency of the high-resolution timer in ticks per second |
EpochMilliseconds |
long |
Custom epoch (Unix ms) for ID generation (2025-01-01 UTC) |
Methods¶
| Method | Return type | Description |
|---|---|---|
NowUtc() |
DateTime |
Current UTC time reconstructed from monotonic stopwatch |
UnixMillisecondsNow() |
long |
Current Unix timestamp in milliseconds |
UnixSecondsNow() |
long |
Current Unix timestamp in seconds |
UnixSecondsNowUInt32() |
uint |
Current Unix timestamp in seconds as uint32 (safe until ~2106) |
UnixMicrosecondsNow() |
long |
Current Unix timestamp in microseconds |
UnixTicksNow() |
long |
Current Unix timestamp in ticks |
UnixTime() |
TimeSpan |
Current Unix time as TimeSpan |
EpochMillisecondsNow() |
long |
Milliseconds since the custom 2025-01-01 epoch |
MonoTicksNow() |
long |
Current monotonic tick count (for latency/RTT measurement) |
MonoTicksToMilliseconds(long) |
double |
Converts a monotonic tick delta into milliseconds |
Example¶
long ms = Clock.UnixMillisecondsNow();
long mono = Clock.MonoTicksNow();
// Measure elapsed time
long start = Clock.MonoTicksNow();
// ... work ...
double elapsedMs = Clock.MonoTicksToMilliseconds(Clock.MonoTicksNow() - start);
// Custom epoch IDs
long id = Clock.EpochMillisecondsNow();