Unix Timestamp in C#

In C#, DateTimeOffset.UtcNow.ToUnixTimeSeconds() returns the current Unix time, and DateTimeOffset.FromUnixTimeSeconds(ts) converts a timestamp back. Both keep the UTC offset explicit.

Get & convert epoch time in C#

var t = DateTimeOffset.FromUnixTimeSeconds(1700000000L).UtcDateTime; // 2023-11-14T22:13:20.000Z
var now = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
Gotcha: Prefer DateTimeOffset over DateTime — DateTime can silently lose zone information and cause off-by-hours bugs.

Frequently asked questions

How do I get the current Unix timestamp in C#?
DateTimeOffset.UtcNow.ToUnixTimeSeconds() for seconds, ToUnixTimeMilliseconds() for milliseconds.
How do I convert a Unix timestamp in C#?
DateTimeOffset.FromUnixTimeSeconds(ts).UtcDateTime gives a UTC DateTime.

Other languages

Copied