Как перевести время в timestamp?

Данный код генерит 10-знаковый timestamp. А мне нужно 16

int unixTime = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;

Нашёл в инете код для операции преобразования 16-значного в timestamp

var timestamp = 1582799824092200;
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
var myDate = epoch.AddMilliseconds(timestamp / 1000);

Ответы (1 шт):

Автор решения: tym32167

Возможно вам надо что то вроде этого (копипаста из какого то моего древнего проекта)

public static double ToUnixTicks(this DateTime dt)
{
    DateTime d1 = new DateTime(1970, 1, 1);
    DateTime d2 = dt.ToUniversalTime();
    TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
    return ts.TotalMilliseconds;
}

public static DateTime FromUnixTicks(this double ms)
{
    DateTime d1 = new DateTime(1970, 1, 1);
    return d1.AddMilliseconds(ms).ToLocalTime();
}
→ Ссылка