1970年1月1日(00:00:00 GMT)Unix 时间戳(Unix Timestamp)对时间转换
将Long类型转换为DateTime类型,时间戳为毫秒的转换
/// <summary>
/// 将Long类型转换为DateTime类型
/// </summary>
/// <param name="d">long</param>
/// <returns></returns>
public static DateTime ConvertLongDateTime(long ticks)
{
DateTime dtBase = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime convertTime = dtBase.Add(new TimeSpan(ticks * TimeSpan.TicksPerMillisecond)).ToLocalTime();
return convertTime;
}
时间戳以秒为单位的转换
/// <summary> /// 将Long类型转换为DateTime类型 /// </summary> /// <param name="d">long</param> /// <returns></returns> public static DateTime ConvertLongDateTime(long ticks) { DateTime dtBase = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); DateTime convertTime = dtBase.Add(new TimeSpan(ticks * TimeSpan.TicksPerSecond)).ToLocalTime(); return convertTime; }
将DateTime类型转换为long类型
/// <summary> /// 将DateTime类型转换为long类型 /// </summary> /// <param name="dt">时间</param> /// <returns></returns> public static long ConvertDataTimeLong(DateTime dt) { DateTime dtBase = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); TimeSpan toNow = dt.ToUniversalTime().Subtract(dtBase); long timeStamp = toNow.Ticks/10000000; return timeStamp; }
用C#转出的结果如果是new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc),因为精度问题需要/10000 获取以毫秒精度的时间戳 /10000000获取以秒为精度的时间戳

浙公网安备 33010602011771号