Unix Timestamp in C#
Get the current Unix timestamp
C#
// .NET 4.6+ (recommended)
long seconds = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
long millis = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
// Legacy approach
long legacySeconds = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds;Convert epoch to DateTime
C#
long epoch = 1700000000L;
// Using DateTimeOffset (recommended)
DateTimeOffset dto = DateTimeOffset.FromUnixTimeSeconds(epoch);
Console.WriteLine(dto.UtcDateTime); // 2023-11-14 22:13:20
Console.WriteLine(dto.ToString("o")); // ISO 8601
// From milliseconds
DateTimeOffset dtoMs = DateTimeOffset.FromUnixTimeMilliseconds(1700000000000L);
// Convert to local time
DateTimeOffset local = dto.ToLocalTime();Convert DateTime to epoch
C#
DateTime dt = new DateTime(2023, 11, 14, 22, 13, 20, DateTimeKind.Utc);
long epoch = new DateTimeOffset(dt).ToUnixTimeSeconds();
// From a parsed string
DateTime parsed = DateTime.Parse("2023-11-14T22:13:20Z").ToUniversalTime();
long epoch2 = new DateTimeOffset(parsed).ToUnixTimeSeconds();Timezones
C#
long epoch = 1700000000L;
DateTimeOffset utc = DateTimeOffset.FromUnixTimeSeconds(epoch);
TimeZoneInfo ist = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
DateTime istTime = TimeZoneInfo.ConvertTimeFromUtc(utc.UtcDateTime, ist);
Console.WriteLine(istTime); // 2023-11-15 03:43:20Time arithmetic
C#
DateTimeOffset now = DateTimeOffset.UtcNow;
DateTimeOffset tomorrow = now.AddDays(1);
DateTimeOffset anHourAgo = now.AddHours(-1);
// Check expiry
long expiryEpoch = 1700000000L;
bool isExpired = DateTimeOffset.UtcNow.ToUnixTimeSeconds() > expiryEpoch;→ Use the live epoch converter to convert any C# timestamp instantly.