Как перевести время в 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();
}