首先了解下时间戳
//JavaScript时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。
//Unix时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
//c#时间戳:0001 年 1 月 1 日 0时0分0秒 开始的
//unix时间戳转c#时间戳 /// <summary> /// unix时间戳(1970时间)转c#时间 /// </summary> /// <param name="unixTimeStamp"></param> /// <returns></returns> public static DateTime UnixTicks2CS(long unixTimeStamp) { System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区 DateTime dt = startTime.AddSeconds(unixTimeStamp); return dt; } //求时间戳之差的时间 /// <summary> /// 获取unix时间戳差值 /// </summary> /// <param name="endTicks">截至日期的时间戳</param> /// <returns></returns> public static TimeSpan GetTimeTicksLerp(long endTicks) { DateTime dateTime = UnixTicks2CS(endTicks); return dateTime - DateTime.Now; }
DateTime d1 = new DateTime(2018, 5, 10);
DateTime d1 = new DateTime(时间戳);
2个DateTime相减后则是 TimeSpan 类型,然后就可以.Days .Hour