c# 10位數int時間單位換算為datetime


  //數據庫10位數表示的時間轉化為datetime日期格式

//將int日期轉化為datetime,獲取日期整數,再轉換為int型

  private void button1_Click(object sender, EventArgs e)
        {
            Int64 begtime = Convert.ToInt64(textBox1.Text) * 10000000;//100毫微秒為單位,textBox1.text需要轉化的int日期
            DateTime dt_1970 = new DateTime(1970, 1, 1,8,0,0);
            long tricks_1970 = dt_1970.Ticks;//1970年1月1日刻度
            long time_tricks = tricks_1970 + begtime;//日志日期刻度
            DateTime dt = new DateTime(time_tricks);//轉化為DateTime
            DateTime enddt = dt.Date;//獲取到日期整數
            int endint = getSecondEnd(enddt);//轉化為int
        }
        /// <summary>
        /// 將結束時間轉換成INT型
        /// </summary>
        /// <param name="end">結束時間</param>
        /// <returns>int值</returns>
        private int getSecondEnd(DateTime end)
        {
            int result = 0;
            DateTime startdate = new DateTime(1970, 1, 1, 8, 0, 0);
            TimeSpan seconds = end.AddDays(1) - startdate;
            result = Convert.ToInt32(seconds.TotalSeconds);
            return result;
        }

 

參考:

JAVA統計從1970年1月1日起的毫秒的數量表示日期。也就是說,例如,1970年1月2日,是在1月1日后的86,400,000毫秒。同樣的,1969年12月31日是在1970年1月1日前86,400,000毫秒。Java的Date類使用long類型紀錄這些毫秒值.因為long是有符號整數,所以日期可以在1970年1月1日之前,也可以在這之后。Long類型表示的最大正值和最大負值可以輕松的表示290,000,000年的時間,這適合大多數人的時間要求。

        C# 日期型數據的長整型值是自 0001 年 1 月 1 日午夜 12:00,以來所經過時間以100 毫微秒為間隔表示時的數字。這個數在 C# 的 DateTime 中被稱為Ticks(刻度)。DateTime 類型有一個名為 Ticks 的長整型只讀屬性,就保存着這個值。

        得到這些信息后,很容易寫出將Java的長整型時間轉化為C#時間。

        long time_JAVA_Long = 1207969641193;//java長整型日期,毫秒為單位
        DateTime dt_1970 = new DateTime(1970,1,1);
        long tricks_1970 = dt_1970.Ticks;//1970年1月1日刻度
        long time_tricks = tricks_1970 + time_Long*10000;//日志日期刻度
        DateTime dt = new DateTime(time_tricks);//轉化為DateTime

 


免責聲明!

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



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