时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。
所以我们在计算时间戳时应为1970年01月01日到指定时间
(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000//获取现在的Unix时间戳(Unix timestamp),单位为秒(s)
(new DateTime(1970,1,1).AddMilliseconds("时间戳,注意为double类型")//将时间戳转换为当前时间
或者
(new DateTime().AddMilliseconds(621355968000000000/10000).AddMilliseconds("时间戳,注意为double类型")//将时间戳转换为当前时间
将时间戳转换为当前时间可能会出现转换时间为时间时间的情况 ,加上下面的偏移量即可
TimeZone.CurrentTimeZone.GetUtcOffset(new DateTime()).Ticks/10000//获取本地时间与世界时间的偏移量,除10000 得到单位为毫秒(ms)的时间差