当前位置:   article > 正文

【Unity】时间戳与DateTime_unity datetime

unity datetime

介绍

在开发游戏的时候,和时间打交道是一个必不可少的部分。而时间戳就是用的最多的一个,尤其是和服务端通信。
那时间戳是什么?
时间戳就是从1970年1月1日0时0分0秒起到现在的总毫秒数,为什么时1970/1/1/00:00:00,因为第一台计算机发明时间是这个时间。

1.DateTime

DateTime是Unity提供的一个获取时候的类

  void Start()
    {
        DateTime date = DateTime.Now;
        Debug.Log("年:" + date.Year);
        Debug.Log("月:" + date.Month);
        Debug.Log("日:" + date.Day);
        Debug.Log("时:" + date.Hour);
        Debug.Log("分:" + date.Hour);
        Debug.Log("秒:" + date.Second);

        //第几周:返回枚举,从0开始, 0代表周日,1代表周一
        Debug.Log("周:" + date.DayOfWeek);
        Debug.Log("一年中的第几天:" + date.DayOfYear);

    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

2.获取时间戳

    void Start()
    {
        //获取当前Ticks, 
        long currentTicks = DateTime.Now.ToUniversalTime().Ticks;
        DateTime dtFrom = new DateTime(1970, 1, 1, 0, 0, 0, 0);
        long Ticks = (currentTicks - dtFrom.Ticks) / 10000000;
        Debug.Log("当前时间戳:" + Ticks);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

可以用时间戳转换工具来验证查询:时间戳转换

在这里插入图片描述

3.时间戳转日期

    void Start()
    {
        //要转换的时间戳
        long timestamp = 1710209909;
        DateTime time = new DateTime(1970, 1, 1).AddSeconds(timestamp);

        //需要加上时区,这个很重要,不然得出的时间会出现偏差
        time = time.AddHours(TimeZoneInfo.Local.GetUtcOffset(time).TotalHours);
        // 格式化日期字符串
        string formattedDate = time.ToString("yyyy-MM-dd HH:mm:ss"); 
         // 打印结果
        Debug.Log(formattedDate);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

4.倒计时方法

    //time:需要倒计时的时长,单位秒
    public string GetTime(long time )
    {
        //算出倒计时时分秒
        int day, hour, minute, second;
        day = Convert.ToInt16(time / 86400);
        hour = Convert.ToInt16((time % 86400) / 3600);
        minute = Convert.ToInt16((time % 86400 % 3600) / 60);
        second = Convert.ToInt16((time % 86400 % 3600) % 60 );
        return string.Format("倒计时:{0}天{1}时{2}分{3}秒", day, hour, minute, second); 

    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/1015345
推荐阅读
相关标签
  

闽ICP备14008679号