//數據庫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
