C# 與Java 時間互相轉換
阿新 • • 發佈:2019-01-25
C# 時間轉 Java時間
/// <summary> /// 日期轉換 /// </summary> /// <param name="date"></param> /// <returns></returns> public java.util.Date DateConvert(DateTime date) { DateTime nTime = date.AddHours(-8); long ctime = nTime.Ticks; long c1970 = new DateTime(1970,1,1).Ticks; long java_ticks = (ctime - c1970)/10000; java.util.Date jDate = new java.util.Date(java_ticks); return jDate; }
Java 時間轉C#時間
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