一、什么是時間戳
時間戳, 又叫Unix Stamp. 從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒。
二、如何計算時間戳
最常用的Unix時間戳(TimeStamp)是指格林尼治時間1970年1月1日0時(北京時間1970年1月1日8時)起至現在的總秒數(10位)或總毫秒數(13位);
public static long GetShortTimestamp(DateTime dateTime)
{
var dt1970 = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return (dateTime.ToUniversalTime().Ticks - dt1970.Ticks) / 10000000;
}
public static long GetLongTimestamp(DateTime dateTime)
{
var dt1970 = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return (dateTime.ToUniversalTime().Ticks - dt1970.Ticks) / 10000000;
}
.NET4.7以上版本提供了更為簡單計算時間戳的方法,具體如下:
new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(); // 10位
new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds(); // 13位