C# 如何转换生成长整型的时间
这个数字字符串就是我们平常所说的时间戳。
什么是时间戳?
时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
C# 将这种长整型数字转换成DataTime
/// <summary>
/// 转换时间戳为C#时间
/// </summary>
/// <param name="timeStamp">时间戳 单位:毫秒</param>
/// <returns>C#时间</returns>
public static DateTime ConvertTimeStampToDateTime(long timeStamp)
{
DateTime defaultTime = new DateTime(1970, 1, 1, 0, 0, 0);
long defaultTick = defaultTime.Ticks;
long timeTick = defaultTick + timeStamp * 10000;
//// 东八区 要加上8个小时
DateTime dt = new DateTime(timeTick).AddHours(8);
return dt;
}
/// <summary>
/// DateTime时间格式转换为Unix时间戳格式
/// </summary>
/// <param name="time"> DateTime时间格式</param>
/// <returns>Unix时间戳格式 单位:毫秒</returns>
public static long ConvertToTimestamp(DateTime time)
{
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
return (long)(time - startTime).TotalSeconds * 1000;
}