realepochconverter
dotnet ticks converter

.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.

converter

.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) and DateTime.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 mattersDateTime ticks are the same count regardless of Kind; 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

Copied