【100个 Unity实用技能】☀️ | Unity中C#获取当前时间戳,时间戳和时间格式相互转换、时间戳转换为多久之前

本文介绍了Unity平台和其作为游戏引擎的角色,重点讲解了在C#中如何获取当前时间、时间戳,以及如何进行日期与时间戳之间的转换。还提供了将时间戳转换为多久之前的实用方法,适合Unity开发者参考学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请添加图片描述

  • 🎬 博客主页:https://xiaoy.blog.youkuaiyun.com

  • 🎥 本文由 呆呆敲代码的小Y 原创,首发于 优快云🙉

  • 🎄 学习专栏推荐:Unity系统学习专栏

  • 🌲 游戏制作专栏推荐:游戏制作

  • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程

  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📆 未来很长,值得我们全力奔赴更美好的生活✨

  • ------------------❤️分割线❤️-------------------------

请添加图片描述请添加图片描述请添加图片描述

请添加图片描述


Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:请添加图片描述请添加图片描述请添加图片描述

  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发美术建筑汽车设计影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机平板电脑PC游戏主机增强现实虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏

Unity C#获取当前时间戳,时间戳和时间格式相互转换、时间戳转换为多久之前

什么是时间戳

时间戳 一般是指格林威治时间1970年1月1日0时0分0秒起至现在的总毫秒数。

1970年01月01日00时00分00秒的来历:UNIX系统认为1970年1月1日0点是时间纪元,所以我们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的。

时间戳在有的地方是以秒数计算的,本文时间戳转换全部以毫秒数计算,防止搞混即可。

1. 获取当前时间的方法
        //方法一
        DateTime now = DateTime.Now;
        Debug.Log("当前北京时间:" + now);
        
        //方法二
        DateTime utcNow = DateTime.UtcNow;
        Debug.Log("当前国际时间:" + utcNow);

在这里插入图片描述

2. 获取当前时间戳的方法(此处获取的)
        //方法一
        long now1 = DateTime.UtcNow.Ticks;
        Debug.Log("当前时间戳:" + now1);
        
        //方法二
        long now2 = DateTime.Now.ToUniversalTime().Ticks;
        Debug.Log("当前时间戳:" + now2);

在这里插入图片描述

3. 日期转为时间戳
        //方法一
        TimeSpan st = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0);
        Debug.Log("日期转为时间戳:"+Convert.ToInt64(st.TotalMilliseconds));
        
        //方法二
        double timeStamp = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000);
        Debug.Log("日期转为时间戳:" + timeStamp);

在这里插入图片描述

4. 时间戳转时间
        //方法一
        DateTime startTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc), TimeZoneInfo.Local);
        DateTime dt = startTime.AddMilliseconds(st);//st为传入的时间戳
        Debug.Log("时间戳转时间:" + dt);
        
        //方法二
        DateTime startTime1 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
        DateTime dt1 = startTime1.AddMilliseconds(st);//st为传入的时间戳
        Debug.Log("时间戳转时间:" + dt);

在这里插入图片描述

5. 将时间戳转换为多久之前 的方法(此处方法传入的秒时间戳)
    /// <summary>
    /// 将秒数时间戳转换为多久之前。传入时间戳t(t= 当前时间戳() - 指定时间的时间戳 )
    /// </summary>
    /// <param name="t"></param>
    /// <returns></returns>
    public string GetTimeLongAgo(double t)
    {
        string str = "";
        double num;
        if (t < 60)
        {
            str = string.Format("{0}秒前", t);
        }
        else if (t >= 60 && t < 3600)
        {
            num = Math.Floor(t / 60);
            str = string.Format("{0}分钟前", num);
        }
        else if (t >= 3600 && t < 86400)
        {
            num = Math.Floor(t / 3600);
            str = string.Format("{0}小时前", num);
        }
        else if (t > 86400 && t < 2592000)
        {
            num = Math.Floor(t / 86400);
            str = string.Format("{0}天前", num);
        }
        else if (t > 2592000 && t < 31104000)
        {
            num = Math.Floor(t / 2592000);
            str = string.Format("{0}月前", num);
        }
        else
        {
            num = Math.Floor(t / 31104000);
            str = string.Format("{0}年前", num);
        }
        return str;
    }
	Debug.Log(GetTimeLongAgo(601));

在这里插入图片描述


资料白嫖,技术互助

学习路线指引(点击解锁)知识定位人群定位
🧡 Unity系统学习专栏 🧡入门级本专栏从Unity入门开始学习,快速达到Unity的入门水平
💛 Unity实战类项目 💛进阶级计划制作Unity的 100个实战案例!助你进入Unity世界,争取做最全的Unity原创博客大全。
❤️ 游戏制作专栏 ❤️ 难度偏高分享学习一些Unity成品的游戏Demo和其他语言的小游戏!
💚 游戏爱好者万人社区💚 互助/吹水数万人游戏爱好者社区,聊天互助,白嫖奖品
💙 Unity100个实用技能💙 Unity查漏补缺针对一些Unity中经常用到的一些小知识和技能进行学习介绍,核心目的就是让我们能够快速学习Unity的知识以达到查漏补缺

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

呆呆敲代码的小Y

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

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

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

打赏作者

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

抵扣说明:

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

余额充值