Unity中获取时间戳、日期、时间、毫秒、秒以相互转换、自定义格式时间

这篇具有很好参考价值的文章主要介绍了Unity中获取时间戳、日期、时间、毫秒、秒以相互转换、自定义格式时间。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

这里附带一个时间戳和时间转换的网址

时间戳是什么

时间戳就是从1970年1月1日0时0分0秒起到现在的总毫秒数,为什么时1970/1/1/00:00:00,因为第一台计算机发明时间是这个时间,所以时间戳诞生了。

什么时候用时间戳

比如说你要做一些时间相关的功能,那么基本都会用到时间戳。而且时间戳是精确的,比如说要做计时、宝箱倒计时、账号禁言、封号等相关问题你请求服务器的数据一般都是通过时间戳来获取具体时间。而且如果与服务器通讯也可以通过时间戳来做一个请求响应时间。

获取时间

获取当前时间

//北京时间
DateTime date1 = DateTime.Now;
Debug.LogError("北京时间:" + date1);

//国际时间
DateTime date2 = DateTime.UtcNow;
Debug.LogError("国际时间:" + date2);

unity 获取时间戳,Unity,C#高级,unity,c#,时间,DateTime

获取时间戳

//时间戳方法一
long now1 = DateTime.UtcNow.Ticks;
Debug.LogError("当前时间戳:" + now1);

//时间戳方法二
long now2 = DateTime.Now.ToUniversalTime().Ticks;
Debug.LogError("当前时间戳:" + now2);

unity 获取时间戳,Unity,C#高级,unity,c#,时间,DateTime

日期转时间戳

//方法一
TimeSpan st1 = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0);
Debug.LogError("日期转为毫秒时间戳:" + Convert.ToInt64(st1.TotalMilliseconds));
Debug.LogError("日期转为秒时间戳:" + Convert.ToInt64(st1.TotalSeconds));
Debug.LogError("日期转为分钟时间戳:" + Convert.ToInt64(st1.TotalMinutes));
Debug.LogError("日期转为小时时间戳:" + Convert.ToInt64(st1.TotalHours));
Debug.LogError("日期转为天时间戳:" + Convert.ToInt64(st1.TotalDays));
//方法二
TimeSpan st2 = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0);
Debug.LogError("日期转为毫秒时间戳:" + Convert.ToInt64(st2.TotalMilliseconds));
Debug.LogError("日期转为秒时间戳:" + Convert.ToInt64(st2.TotalSeconds));
Debug.LogError("日期转为分钟时间戳:" + Convert.ToInt64(st2.TotalMinutes));
Debug.LogError("日期转为小时时间戳:" + Convert.ToInt64(st2.TotalHours));
Debug.LogError("日期转为天时间戳:" + Convert.ToInt64(st2.TotalDays));

//方法三
double tS1 = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000);
Debug.LogError("日期转为时间戳:" + tS1);

//方法四
double tS2 = ((DateTime.UtcNow.Ticks - 621355968000000000) / 10000);
Debug.LogError("日期转为时间戳:" + tS2);

unity 获取时间戳,Unity,C#高级,unity,c#,时间,DateTime

时间戳转日期

        //方法一
        DateTime startTime1 = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc), TimeZoneInfo.Local);
        DateTime dt1 = startTime1.AddMilliseconds(1698766775000);//传入的时间戳
        Debug.LogError("时间戳转时间:" + dt1);

        //方法二
        DateTime startDateTime = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(1970, 1, 1, 0, 0, 0), TimeZoneInfo.Local);
        long targetTimeStamp = ((long)1698766775000 * 10000);
        TimeSpan targetTS = new TimeSpan(targetTimeStamp);
        DateTime targetDateTime = startDateTime.Add(targetTS);
        Debug.LogError("时间戳转时间:" + targetDateTime);

        //方法三
        DateTime startTime3 = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
        DateTime dt3 = startTime3.AddTicks(1698766775000 * 10000);//传入的时间戳
        Debug.LogError("时间戳转时间:" + dt3);

unity 获取时间戳,Unity,C#高级,unity,c#,时间,DateTime

将时间戳转换为多久之前

	void Start()
	{
    	Debug.LogError(GetTimeLongAgo(20));
    	Debug.LogError(GetTimeLongAgo(3000));
    	Debug.LogError(GetTimeLongAgo(50000));
    	Debug.LogError(GetTimeLongAgo(864000));
    	Debug.LogError(GetTimeLongAgo(25920000));
    	Debug.LogError(GetTimeLongAgo(61104000));
    
	}
	/// <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;
    }

unity 获取时间戳,Unity,C#高级,unity,c#,时间,DateTime

星期

        //方案一
        string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
        string week = Day[Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d"))].ToString();
        Debug.LogError(week);

        //方案二
        Debug.LogError(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(DateTime.Now.DayOfWeek));

        //方案三
        Debug.LogError(DateTime.Today.DayOfWeek.ToString());

unity 获取时间戳,Unity,C#高级,unity,c#,时间,DateTime

自定义格式时间

DateTime dateTime = DateTime.Now;
string strNowTime = string.Format("{0:D}-{1:D}-{2:D}-{3:D}-{4:D}-{5:D}-{6:D}", dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second, dateTime.Millisecond);

Debug.LogError(strNowTime);

unity 获取时间戳,Unity,C#高级,unity,c#,时间,DateTime

总结

这里其实还有很多中方式,上面知识其中的一些,基本是够用了,欢迎评论区补充文章来源地址https://www.toymoban.com/news/detail-751895.html

到了这里,关于Unity中获取时间戳、日期、时间、毫秒、秒以相互转换、自定义格式时间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL时间戳与日期格式的相互转换

    在MySQL数据库中,时间戳(timestamp)和日期格式(date format)是常用的数据类型。时间戳表示从1970年1月1日零时到特定日期时间的秒数,而日期格式则以年-月-日的形式表示日期。在MySQL中,我们可以使用函数来相互转换时间戳和日期格式。下面我将详细介绍如何进行这些转换

    2024年02月03日
    浏览(43)
  • Linux :: 时间日历指令【2】:date 指令 与 时间戳(及日期与时间戳的相互转换)

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 目录索引: 1. 时间戳的认识 2. Linux 下获取时间戳方式:date +%s 3. 时间 = 时间戳 4. 时间戳 = 时间:

    2024年02月15日
    浏览(47)
  • 前端中不同格式的日期相互转换(字符串、时间戳)js相关

    在项目中遇到了,需要实现字符串和Unix时间戳的相互转换,随手记录一下。 我使用的组件库为Naive UI,涉及到的组件为日期选择器(Date Picker)。作者在文档中写道: 实话说我不喜欢这个 feature,因为多数情况下,传递时间字符串不是个最佳实践。但是现实世界是复杂的,我

    2024年02月02日
    浏览(69)
  • python获取当前时间(年-月-日 时:分:秒:毫秒),提取当前日期/时间数字,获取程序运行的时间差(时:分:秒),让程序停止xx秒【两种方法,第二种方法精度较高】

    目录 》》》第一种方法,代码如下:(获取当前时间,提取当前日期/时间数字) 》》》第二种方法,代码如下:(获取当前时间,提取日期/时间数字,获取时间差【时:分:秒】) 》》》第一种方法,代码如下:(获取当前时间,提取当前日期/时间数字) 第一种方法的运行

    2024年02月16日
    浏览(58)
  • JS日期与字符串相互转换(时间格式化YYYY-MM-DD,Dayjs的使用)

    文章内容 文章链接 JS数组对象—— 根据日期进行排序 , 按照时间进行升序或降序排序 https://blog.csdn.net/XSL_HR/article/details/128579840?spm=1001.2014.3001.5501 JS日期时间格式化—— 数字日期转中文日期 (封装函数,dayjs转换时间格式) https://blog.csdn.net/XSL_HR/article/details/128607024?spm=100

    2024年01月18日
    浏览(76)
  • logstash毫秒时间戳转日期以及使用业务日志时间戳替换原始@timestamp

    在使用Kibana观察日志排查问题时发现存在很多组的@timestamp 数据一样,如下所示 详细观察内部数据发现其中日志数据有一个timestamp字段保存的是业务日志的毫秒级时间戳,经过和@timestamp数据对比发现二者的时间不匹配。经过分析得知@timestamp是按照logstash插入es数据的时间来排

    2023年04月11日
    浏览(41)
  • java实现时间格式转换(int整数类型的秒/毫秒---时分秒毫秒)

    秒或毫秒类型的数值转为指定格式的时间格式: 运行结果如下: 当然,还可以指定自定义的格式转化显示。

    2024年02月11日
    浏览(53)
  • python time 获取毫秒级时间戳

    1、time 获取秒级时间戳,格式化显示 结果: 2、datetime 获取当前日期时间 结果: 3、日期时间之间的转换 3.1、字符串转 time 3.2、字符串转 time 3.3、示例

    2024年02月16日
    浏览(48)
  • PHP实现获取毫秒时间戳的方法

    PHP获取毫秒时间戳,利用microtime()函数 php本身没有提供返回毫秒数的函数,但提供了一个microtime()函数,借助此函数,可以很容易定义一个返回毫秒数的函数。 php的毫秒是没有默认函数的,但提供了一个microtime()函数,该函数返回包含两个元素,一个是秒数,一个是小数表示

    2024年02月15日
    浏览(41)
  • c++ 获取当前时间(精确至秒、毫秒和微妙)

    概念 时间单位 小时(hours): std::chrono::hours 分钟(minutes): std::chrono::minutes 秒(seconds): std::chrono::seconds 毫秒(milliseconds): std::chrono::milliseconds 微秒(microseconds): std::chrono::microseconds 纳秒(nanoseconds): std::chrono::nanoseconds 时间精度 整数类型精度: std::chrono::duratio

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包