Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年1月1日0时0分0秒(北京时间1970年1月1日8时0分0秒)起至现在的总毫秒数。
C# 中的 Tick 是100纳秒(ns)
1秒(s) = 1000毫秒(ms)
1毫秒(ms) = 1000微秒(μs)
1微秒(μs) = 1000纳秒(ns)
DateTime.Now.Ticks 是公元 0年0月0日0时0分0秒 至当前时区时间的 Tick 数,DateTime.UtcNow.Ticks 是公元 0年0月0日0时0分0秒 至格林威治时间(UTC +0)的 Tick 数。
获取时间戳的方式为 (DateTime.UtcNow.Ticks - 621355968000000000) / 10000 , 621355968000000000 是 0年0月0日0时0分0秒 至 1970年1月1日0时0分0秒 的 Tick 数,除以10000是将 Tick 装换为毫秒。
将时间戳转换为格林威治时间(UTC +0) DateTime 的方法为:
new DateTime( [Unix时间戳] * 10000 + 621355968000000000)
将时间戳转换为本地时间的方法为
new DateTime( [Unix时间戳] * 10000 + 621355968000000000).ToLocalTime();