C# 如何转换生成长整型的时间


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这个数字字符串就是我们平常所说的时间戳。

什么是时间戳?

时间戳(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;

}


posted @ 2018-01-28 00:00  天使不哭  阅读(488)  评论(0编辑  收藏  举报