时间戳的使用
一、什么是时间戳
时间戳, 又叫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位