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);

在这里插入图片描述

获取时间戳

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

在这里插入图片描述

日期转时间戳

//方法一
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);

在这里插入图片描述

时间戳转日期

        //方法一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);

在这里插入图片描述

将时间戳转换为多久之前

	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;}

在这里插入图片描述

星期

        //方案一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());

在这里插入图片描述

自定义格式时间

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);

在这里插入图片描述

总结

这里其实还有很多中方式,上面知识其中的一些,基本是够用了,欢迎评论区补充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/295732.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Ubuntu22+Minikube快速搭建K8S开发环境

安装Vmware 这一步&#xff0c;可以参考我的如下课程。 安装Ubuntu22 下载ISO镜像 这里我推荐从清华镜像源下载&#xff0c;速度会快非常多。 下载地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04.3/ 如果你报名了我的这门视频课程&#xf…

软件工程期末复习

● 用例&#xff1a;借书 ●参与者&#xff1a;管理员,借阅者 ●操作流&#xff1a; ① 管理员进入图书借阅界面&#xff0c;用例开始。 ② 系统要求输入借阅者的借书证编码。 ③系统检验借书证编码,如果正确,则显示借阅者的信息。 A1&#xff1a;借书证编码有错。 A2: 如果该借…

【运维面试100问】(十一)淡淡I/O过程

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

DFS与BFS算法总结

知识概览 DFS、BFS都可以对整个问题空间进行搜索&#xff0c;搜索的结构都是像一棵树。DFS会尽可能往深搜&#xff0c;当搜索到叶节点时就会回溯。而BFS每一次只会扩展一层。 DFS与BFS的区别&#xff1a; 搜索方式数据结构空间复杂度性质DFS栈O(h)&#xff0c;其中h为搜索空间…

4.4【共享源】克隆实战开发之截屏(二)

三,显示器截图 screen_read_display() 函数则用于捕获显示器的屏幕截图。我们需要在特权上下文中工作,以便可以完全访问系统的显示属性。我们可以通过调用具有 SCREEN_DISPLAY_MANAGER_CONTEXT 上下文类型的 screen_create_context() 来创建特权上下文。进程必须具有 root 的…

simulinkveristandlabview联合仿真——模型导入搭建人机界面

目录 1.软件版本 2.搭建simulink仿真模型 编译错误 3.导入veristand并建立工程 4.veristand导入labview labview显示veristand工程数据 labview设置veristand工程数据 运行labview工程 1.软件版本 matlab2020a&#xff0c;veristand2020 R4&#xff0c;labview2020 SP…

Python入门学习篇(五)——列表字典

1 列表 1.1 定义 ①有序可重复的元素集合 ②可以存放不同类型的数据 ③个人理解:类似于java中的数组1.2 相关方法 1.2.1 获取列表长度 a 语法 len(列表名)b 示例代码 list2 [1, 2, "hello", 4] print(len(list2))c 运行结果 1.2.2 获取列表值 a 语法 列表名…

TLC549(8位A/D转换器)实现将输入的模拟电压显示到数码管上

代码&#xff1a; #include "reg51.h" #include "intrins.h" #define uchar unsigned char #define uint unsigned intsbit SDO P1^0; // 芯片的三个关键的输入数据端口&#xff0c;主要是靠外电压来提供的 sbit CS P1^1; sbit SCLK P1^2;sbit wei0 P…

lv13 操作系统、内核实现 1

目录 一、程序分类 二、计算机系统的层次结构 2.1 无操作系统的简单的两层结构 ​编辑 2.2 有操作系统的复杂的四层结构 三、 什么是操作系统 四、操作系统内核的实现模式 五、什么是设备驱动程序 一、程序分类 程序按其运行环境分为&#xff1a; 裸机程序&#xff1a;…

更改WiseAlign软件界面图标方法

更改WiseAlign软件界面图标方法 未替换时 首先将图片转换为BMP格式&#xff0c;在搜索栏处输入画图&#xff0c;点击打开画图工具 按住图标拖动到画布内&#xff0c;或是直接CtrlV将图标复制到画布内 点击文件&#xff0c;再点击另存为 保存类型选择“24位位图&#xff08;*.bm…

【Nacos】—客户端与服务端源码解析

Nacos系列 Nacos—简述、注册中心、配置中心 Nacos安装教程 SpringBoot项目与Nacos配置 一、背景介绍 Nacos&#xff08;Naming and Configuration Service&#xff09;是阿里巴巴开源的服务发现和配置管理工具&#xff0c;它是一个全面的微服务基础设施组件&#xff0c;提供…

中心性算法归纳

中心性算法不仅是在我所学习的计算机网络当中起很重要的作用&#xff0c;在交通网络、社交网络、信息网络、神经网络当中也有很多的应用例子。今天我在这里总结一下场景的几种中心性算法。 参考文献 Python NetworkX库 偏心中心性&#xff08;Eccentricity Centrality&#x…