public static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
public static void Main()
var tokenValidFor = TimeSpan.FromSeconds(2);
var now = DateTime.UtcNow;
var expiry = now.Add(tokenValidFor);
Console.WriteLine(GetEpochDateTimeAsInt(now));
Console.WriteLine(GetEpochDateTimeAsInt(expiry));
public static long GetEpochDateTimeAsInt(DateTime datetime)
DateTime dateTime = datetime;
if (datetime.Kind != DateTimeKind.Utc)
dateTime = datetime.ToUniversalTime();
if (dateTime.ToUniversalTime() <= UnixEpoch)
return (long)(dateTime - UnixEpoch).TotalSeconds;