unix时间戳 从1970-1-1 零点开始, .net中的DateTime.Ticks从0001-1-1零点开始 /// <summary> /// datetime 转成Unix时间戳 /// </summary> /// <param name="dt"></param> /// <returns></returns> private string GetUnixTimeStamp(DateTime dt) { DateTime unixStartTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); TimeSpan timeSpan = dt.Subtract(unixStartTime); string timeStamp = timeSpan.Ticks.ToString(); return timeStamp.Substring(0, timeStamp.Length - 7); } //---unix时间戳转换成标准时间---// string timeStamp = "1144821796"; DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1)); long lTime = long.Parse(timeStamp + "0000000"); TimeSpan toNow = new TimeSpan(lTime); DateTime dtResult = dtStart.Add(toNow); /// <summary> /// datetime 转成Unix时间戳 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static long GetUnixTimeStamp(DateTime dt) { DateTime unixStartTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); TimeSpan timeSpan = dt.Subtract(unixStartTime); return timeSpan.Ticks / 10000000; }