C# 時間戳與時間的相互轉換


時間戳實際就是當前時間距離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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM