時間戳實際就是當前時間距離1970年1月1日0點0時0分0秒(轉換成北京時間是1970年1月1日8點0時0分0秒)距離你要計算的時間的秒數或者毫秒數
一般來說:我們用的時間戳到秒的話是10位,到毫秒的話是13位
一、時間time與秒時間戳之間轉換
1、把時間time轉換成秒時間戳
DateTime time = DateTime.Now;
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));//當地時區
TimeSpan ts = time - startTime;
var timestamp = Convert.ToInt64(ts.TotalSeconds);
Console.WriteLine(timestamp);
2、秒時間戳轉換成time
long timestamp=1629160713;
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));//當地時區
var time = startTime.AddSeconds(timestamp);
二、時間time與毫秒時間戳之間轉換
1、把時間time轉換成毫秒時間戳
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
var timestamp= Convert.ToInt64(ts2.TotalMilliseconds);
Console.WriteLine(timestamp);
2、毫秒時間戳轉換成time
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));//當地時區
var time = startTime.AddMilliseconds(cc);
注意點:
UtcNow
獲取的是標准時區,而TimeZone.CurrentTimeZone.ToLocalTime
獲取的是當地時區,所以獲取時間差會有兩種寫法
//當地時區
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 當地時區
TimeSpan ts = DateTime.Now - startTime;
//標准時區
TimeSpan ts2 = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);