Developer Documentation
C#
Updated September 19, 2026

Unix Timestamp and Epoch in C#

Generate and convert Unix timestamps in seconds and milliseconds in C#.

Unix time counts elapsed time from the Unix epoch at 1970-01-01T00:00:00Z. Different ecosystems use different units, so always label whether a value is in seconds, milliseconds, microseconds, or nanoseconds.

Quick Start#

The following example uses the standard C# API or a widely used package for this task.

Quick start#

C#
1DateTimeOffset now = DateTimeOffset.UtcNow;2long seconds = now.ToUnixTimeSeconds();3long milliseconds = now.ToUnixTimeMilliseconds();45Console.WriteLine(seconds);6Console.WriteLine(milliseconds);

Common Operations#

This second pattern covers a common production operation or a safer way to handle real input.

Convert back#

C#
1DateTimeOffset fromSeconds = DateTimeOffset.FromUnixTimeSeconds(epochSeconds);2DateTimeOffset fromMilliseconds = DateTimeOffset.FromUnixTimeMilliseconds(epochMilliseconds);34Console.WriteLine(fromSeconds.ToString("O"));

Important Notes#

Prefer DateTimeOffset for timestamps because it represents an absolute instant more clearly than an unspecified DateTime.

Best Practices#

  1. Treat external input as untrusted and handle parse/validation errors explicitly.
  2. Keep encoding, units, formats, and library-specific mapping rules explicit at system boundaries.
  3. Add test vectors that cover empty input, Unicode text, malformed input, and representative production data.

References#

Implement Unix Timestamp in other languages: