關於格林尼治時間(GMT)和DateTime相互轉換的分享


普及一下什么是格林尼治時間?

世界時UT格林尼治 平太陽時間,是指格林尼治所在地的標准時間,也是表示地球自轉速率的一種形式。以地球自轉為基礎的時間計量系統。地球自轉的角度可用地方子午線相對於地球上的基本參考點的運動來度量。為了測量地球自轉,人們在地球上選取了兩個基本參考點:春分點(見分至點)和平太陽點,由此確定的時間分別稱為恆星時和平太陽時。

林尼治是英國倫敦南郊原皇家 格林尼治天文台所在地,地球本初子午線的標界處,世界計算時間和經度的起點。以其海事歷史、作為 本初子午線的標准點、以及格林尼治時間以其命名而聞名於世。這里地勢險要,風景秀麗,兼具歷史和地方風情,也是倫敦在泰晤士河的東方門戶。
不光是天文學家使用格林尼治時間,就是在新聞報刊上也經常出現這個名詞。我們知道各地都有各地的地方時間。如果對國際上某一重大事情,用地方時間來記錄,就會感到復雜不便.而且將來日子一長容易搞錯。因此,天文學家就提出一個大家都能接受且又方便的記錄方法,那就是以格林尼治的地方時間為標准。
 
 關於 格林尼治時間 想知道再詳細的計算的話,請自行百度。
 

1、DateTime轉換成格林尼治時間(GMT),直接上代碼,廢話不多說。

        /// <summary>
        /// 獲取格林治時間
        /// </summary>
        /// <param name="nowTime"></param>
        /// <returns></returns>
        public static long GetUnixTime(DateTime nowTime)
        {
            DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));
            return (long)Math.Round((nowTime - startTime).TotalMilliseconds / 1000, MidpointRounding.AwayFromZero);
        }

 

2、格林尼治時間(GMT)轉換成DateTime

        /// <summary>
        /// 獲取時間(由格林治時間)
        /// </summary>
        /// <param name="timeStamp"></param>
        /// <returns></returns>
        public static DateTime From_UnixTime(long timeStamp)
        {
            return DateTime.Parse("1970-01-01 00:00:00").AddSeconds(timeStamp);
        }    

 

3、獲取格林治時間的四字節數組

        /// <summary>
        /// 獲取格林治時間的四字節數組
        /// </summary>
        /// <param name="nowTime"></param>
        /// <returns></returns>
        public static byte[] GetByteTimeStamp(DateTime nowTime)
        {
            DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));
            long lng = (long)Math.Round((nowTime - startTime).TotalMilliseconds / 1000, MidpointRounding.AwayFromZero);
            byte[] timestamp = System.BitConverter.GetBytes(lng);
            byte[] ret = new byte[4];
            ret[0] = timestamp[3];
            ret[1] = timestamp[2];
            ret[2] = timestamp[1];
            ret[3] = timestamp[0];
            return ret;
        }

 

ok,今天的分享就到這里,有不錯的歡迎留言提出!!!


免責聲明!

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



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