demoshop

NEWS

demo, trying to be the best.

站內搜尋載入中...

將時間轉換成timeStamp

  • 18961
  • 0

C#中的DateTime型態可以顯示的範圍在西元0001年1月1日晚上12:00:00到西元9999年12月31日晚上11:59:59之間,而Unix的時間戳記則是顯示格林威治時間(GTM)1970年1月1日00:00:00到目前經過的秒數。C#沒有預設的函式來處理兩者之間的轉換,所以我們自己動手來作一個吧

    把現在時間轉成timeStamp

    DateTime gtm = new DateTime(1970, 1, 1);//宣告一個GTM時間出來
    DateTime utc = DateTime.UtcNow.AddHours(8);//宣告一個目前的時間
    int timeStamp = Convert.ToInt32(((TimeSpan)utc.Subtract(gtm)).TotalSeconds);
    //我們把現在時間減掉GTM時間得到的秒數就是timpStamp,因為我不要小數點後面的所以我把它轉成int 

        ▲當然你也可以簡寫

     int timeStamp = Convert.ToInt32(DateTime.UtcNow.AddHours(8).Subtract(new DateTime(1970, 1, 1)).TotalSeconds); 

    ♥小提醒:上面轉timeStamp的方法是因為我要拿來做檔名,所以不能有小數點,如果你要完整的timeStamp就這樣寫吧

     double timeStamp = DateTime.UtcNow.AddHours(8).Subtract(new DateTime(1970, 1, 1)).TotalSeconds; 


    把timeStamp轉回GMT時間

     DateTime gtm = (new DateTime(1970, 1, 1)).AddSeconds(Convert.ToInt32(timeStamp)); 



    ?小鋪廢言:如簡介說的,因為timeStamp是時間的秒數,所以是唯一的,因為他是唯一的所以相當的好用,比如說上傳檔案的檔名或資料夾等等一些需要多個pk值的應用,建議您把它寫成Class以後要引用的時候就簡單多了。