C#獲取時間戳的問題


       最近在做一個接口,需要用到時間戳,在請求接口時,返回超時,接口方的技術稱是時間戳的不對(超出一定范圍[比如1分鍾]就返回超時)導致的。

首先,看代碼:

       

public static double GetTimestamp(DateTime d)
{ TimeSpan ts
= d - new DateTime(1970, 1, 1); return ts.TotalMilliseconds; }

初始貌似沒有問題,但是接口方的技術說真正得到的時間是多了8個多小時,經過一番推敲和網上找資料,原因是要計算的時間沒有轉換為標准時區的時間,是直接使用了北京時間,而接口根據時間戳計算時間是標准時區所對應的時間戳(Unix時間戳),所以驗證時間戳不對; 

public static double GetTimestamp(DateTime d)
{
            TimeSpan ts = d.ToUniversalTime() - new DateTime(1970, 1, 1);
            return ts.TotalMilliseconds;     //精確到毫秒
}

 ToUniversalTime()是轉換為UTC時間,然后計算出來的就是Unix時間戳,至此,問題解決。


免責聲明!

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



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