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


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

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

    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

 

參考:

https://blog.csdn.net/smartsmile2012/article/details/53736337

 


免責聲明!

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



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