C#实现时间互转毫秒时间戳

/// <summary>
/// DateTime类型转换为时间戳(毫秒值)
/// </summary>
/// <param name="dateTime">时间</param>
/// <returns>13位时间戳</returns>
static long DateToTicks(DateTime? dateTime)
{
    //北京时间相差8小时
    DateTime startTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 8, 0, 0, 0), TimeZoneInfo.Local);
    return ((dateTime.HasValue ? dateTime.Value.Ticks : DateTime.Parse("1990-01-01 08:00:00:000").Ticks) - startTime.Ticks) / 10000;   //除10000调整为13位
}

/// <summary>
///时间戳(毫秒值)long转换为DateTime类型转换
/// </summary>
/// <param name="timestamp">13位时间戳</param>
/// <returns></returns>
static DateTime TicksToDate(long timestamp)
{
    //北京时间相差8小时
    DateTime dt1970 = new DateTime(1970, 1, 1, 8, 0, 0, 0);
    return new DateTime((Convert.ToInt64(timestamp) * 10000) + dt1970.Ticks);
}

调用方法:

Console.WriteLine(DateToTicks(DateTime.Now));

Console.WriteLine(TicksToDate(1490818222045));
posted @ 2024-05-14 15:02  孔小爽  阅读(179)  评论(0编辑  收藏  举报
作者:孔小爽 引用请标明出处:https://www.cnblogs.com/kongxiaoshuang/