c#DateTime與unix時間戳互相轉換


https://www.cnblogs.com/yaosj/p/11230626.html

因為七牛的私庫下載路徑中的超時時間需要用到Unix時間戳,特此記錄一下

Unix時間戳( Unix timestamp):從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public  class  UnixTimeUtil
{
     /// <summary>
     /// 將dateTime格式轉換為Unix時間戳
     /// </summary>
     /// <param name="dateTime"></param>
     /// <returns></returns>
     public  static  int  DateTimeToUnixTime(DateTime dateTime)
     {
         return  ( int )(dateTime - TimeZone.CurrentTimeZone.ToLocalTime( new  DateTime(1970, 1, 1))).TotalSeconds;
     }
 
     /// <summary>
     /// 將Unix時間戳轉換為dateTime格式
     /// </summary>
     /// <param name="time"></param>
     /// <returns></returns>
     public  static  DateTime UnixTimeToDateTime( int  time)
     {
         if  (time < 0)
             throw  new  ArgumentOutOfRangeException( "time is out of range" );
 
         return  TimeZone.CurrentTimeZone.ToLocalTime( new  DateTime(1970, 1, 1)).AddSeconds(time);
     }
}

  

還可以這樣子求Unix時間戳:

(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000


免責聲明!

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



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