.NET DateTime Ticks Converter
Every .NET DateTime is built on ticks: 100-nanosecond intervals since January 1, year 1. Paste a tick count here and read it as a date — or turn any date into the ticks your C# code needs.
.NET DateTime ticks.
The 100-nanosecond ticks behind DateTime.Ticks, DateTimeOffset, and every EF Core rowversion — decoded since year 1.
100-nanosecond intervals since January 1, year 1, UTC.
What a tick is
A DateTime.Ticks value counts 100-nanosecond intervals since midnight on January 1, year 1 (0001-01-01). It is the internal representation of everySystem.DateTime and DateTimeOffset — and the reason EF Core rowversions and Stopwatch readings look like huge 18-digit numbers:
DateTime.UtcNow.Ticks— current time in ticks.DateTimeOffset.UtcNow.Ticks— same count, no offset applied.Stopwatch.GetTimestamp()— a similar 100ns count on Windows.- File
LastWriteTimeUtc.Ticks— stored timestamps in .NET code.
The gap between year 1 and the Unix epoch (1970) is 621355968000000000 ticks — exactly 62135596800000 ms.
The math
- Ticks → Unix ms:
ticks / 10_000 - 62135596800000. - Unix ms → Ticks:
(ms + 62135596800000) * 10_000.
Example conversions
621355968000000000→ January 1, 1970 00:00:00 UTC — the Unix epoch, in ticks.639216576000000000→ August 7, 2026 00:00:00 UTC.- Maximum:
3155378975999999999→ December 31, 9999 23:59:59.9999999.
In your own code
- C#:
new DateTime(639216576000000000, DateTimeKind.Utc)andDateTime.UtcNow.Ticks. - PowerShell:
[DateTime]::new(639216576000000000, [DateTimeKind]::Utc). - Python:
datetime(1, 1, 1, tzinfo=timezone.utc) + timedelta(microseconds=ticks / 10). - Go:
time.Unix(0, (ticks-621355968000000000)*100).
Gotchas
- Precision loss — current tick counts (~18 digits) exceed JavaScript's safe-integer range; this converter reads and writes them with
BigInt. - Not a Unix value — ticks count from year 1, so an unadjusted paste lands in year 1, not 1970. Apply the 621355968000000000 offset.
- Kind matters —
DateTimeticks are the same count regardless ofKind; only the interpretation (Local vs UTC vs Unspecified) changes. - Range — .NET supports year 1 through 9999. Dates outside that range simply don't exist as ticks.
Related tools
The sibling Windows format is the LDAP / Active Directory timestamp (same 100ns ticks, but from 1601). For everyday Unix values, see theUnix timestamp to date converter.
Related converters
- Full online epoch converter — Unix time with batch conversion and code snippets.
- Unix timestamp to date converter — decode any epoch value into a readable date.
- Date to epoch converter — turn any date string back into a Unix timestamp.
- Milliseconds to epoch converter — for
Date.now()values and high-precision APIs. - Snowflake ID converter — decode Discord and Twitter/X 64-bit IDs.
- LDAP / Active Directory timestamp converter— 100-nanosecond FileTime values.
- GPS time converter — week numbers and seconds-of-week since 1980.
- NTP timestamp converter — seconds since 1900, with the 64-bit packet form.
- .NET DateTime ticks converter — 100-nanosecond ticks since year 1.
- Mac HFS+ timestamp converter — seconds since 1904.
- Excel date converter — OADate serial numbers, days since 1900.