private const long SecondsTo100NsTicks = 10 * 1000;
private static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
public static void Main()
var epochSeconds = 1639994902628;
var ticks = ConvertEpochSecondsToTicks(epochSeconds);
var time = new DateTime(ticks).ToLocalTime();
Console.WriteLine("------ " + DateTime.Now.ToLocalTime());
Console.WriteLine("------ " + time);
public static long ConvertEpochSecondsToTicks(long secs)
var maxSecondsAllowed = (DateTime.MaxValue.Ticks - Epoch.Ticks) / SecondsTo100NsTicks;
if (secs > maxSecondsAllowed) secs = maxSecondsAllowed;
return Epoch.Ticks + secs * SecondsTo100NsTicks;