Unity基础 Unity获取当前时间的时间戳

一、单位换算

1秒 = 1000毫秒

1毫秒 = 1000微妙

1微秒 = 1000纳秒

二、获取Unix时间戳

    /// <summary>
    /// 获取时间戳(精确到秒)
    /// TimeTool.ConvertDateTimep(DateTime.Now)
    /// </summary>
    /// <param name="time">时间</param>
    public static long ConvertDateTimep(DateTime time)
    {
        return ((time.ToUniversalTime().Ticks - 621355968000000000) / 10000000);
        //等价于:
        //return ((time.ToUniversalTime().Ticks - new DateTime(1970, 1, 1, 0, 0, 0, 0).Ticks) / 10000000) * 1000;
    }
    /// <summary>
    /// 时间戳转为C#格式时间
    /// TimeTool.GetTime(TimeTool.ConvertDateTiemp(DateTime.Now).ToString())
    /// </summary>
    /// <param name="timeStamp">时间戳</param>
    /// <returns></returns>
    public static DateTime GetTime(string timeStamp)
    {
        if (timeStamp.Length > 10)
        {
            timeStamp = timeStamp.Substring(0, 10);
        }
        DateTime dateTimeStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
        long lTime = long.Parse(timeStamp + "0000000");
        TimeSpan toNow = new TimeSpan(lTime);
        return dateTimeStart.Add(toNow);
    }

时间戳使用方式

        //获取当前时间戳
        long unixTime = TimeTool.ConvertDateTimep(DateTime.Now);
        Debug.Log(unixTime);
        //将时间戳转换为DateTime
        Debug.Log(TimeTool.GetTime(unixTime.ToString()).ToString());
        Debug.Log(TimeTool.GetTime(unixTime.ToString()).Year);
        Debug.Log(TimeTool.GetTime(unixTime.ToString()).Month);
        Debug.Log(TimeTool.GetTime(unixTime.ToString()).Day);
        Debug.Log(TimeTool.GetTime(unixTime.ToString()).Hour);
        Debug.Log(TimeTool.GetTime(unixTime.ToString()).Minute);
        Debug.Log(TimeTool.GetTime(unixTime.ToString()).Second);

三、获取当前时间的时间戳

    private long GetTime()
    {
   	   //精确到毫秒
       return  new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();
    }

四、获取当前时间毫秒值

方式一:

例如:获取从1970年1月1日至当前时间所经过的毫秒数

//获取当前Ticks
long currentTicks=DateTime.Now.Ticks;
DateTime dtFrom = new DateTime(1970, 1, 1, 0, 0, 0, 0);
long currentMillis = (currentTicks - dtFrom.Ticks) / 10000;

方式二:

例如一:获取当前时间毫秒数

(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000

例如二:获取当前时间秒数

(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

其子昱舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值