• C#中DateTime.Ticks属性及Unix时间戳转换


    1.相关概念

    DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒)。

    Unix时间戳:是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

    1秒    = 1000毫秒

    1毫秒 = 1000微妙

    1微秒 = 1000纳秒

    因此, 1毫秒 = 10000纳秒

    2.DateTime变量与时间戳的相互转换

    在实际使用中经常需要精确到毫秒,因此这里下面两个函数的使用单位都是“毫秒”,若要转换成“秒”,可以再除以或乘以1000。

    /// <summary>
    /// 获取1970-01-01至dateTime的毫秒数
    /// </summary>
    public long GetTimestamp(DateTime dateTime)
    {
        DateTime dt1970 = new DateTime(1970, 1, 1, 0, 0, 0, 0);
        return (dateTime.Ticks - dt1970.Ticks) / 10000;
    }
    
    /// <summary>
    /// 根据时间戳timestamp(单位毫秒)计算日期
    /// </summary>
    public DateTime NewDate(long timestamp)
    {
        DateTime dt1970 = new DateTime(1970, 1, 1, 0, 0, 0, 0);
        long t = dt1970.Ticks + timestamp * 10000;
        return new DateTime(t);
    }
  • 相关阅读:
    2008年8月1日21世纪首次日全食奇观
    7.3午饭记
    简单漂亮的导航栏效果
    浮动居中float:center
    图片垂直居中的CSS技巧
    谷歌Chrome浏览器发布
    满江红.中秋寄远
    寄中秋月下独酌
    春江花月夜
    开始锻炼身体
  • 原文地址:https://www.cnblogs.com/rainman/p/4810043.html
Copyright © 2020-2023  润新知