最近楼主在开发中遇到了一个小问题
需要保存截图,同时把时间作为截图的名字存储
时间的保存格式为 2016-12-08 13:15:00
保存截图的流程就不说了,这篇博客只说一下以任意的格式保存时间。
楼主查了一下打印时间的函数
首先要引入一个程序集using System;
具体的函数为System.DateTime.Now
这时候Debug一句,就可以打印当前时间了
void Start(){
Debug.Log(System.DateTime.Now);
}
这时默认的格式为
12/8/2016 1:39:30 PM
然而楼主想用的并不是这种格式
准确的说是策划想要的不是这种格式
然后查了一下API
Now里面含有Year、Month、Day、Hour、Minute、Second六个属性
于是楼主就想,能不能把这六个属性打印出来,然后用自己想要的格式连接成一个字符串打印呢
说试就试
void Start() { Debug.Log(System.DateTime.Now.Year + "-" + System.DateTime.Now.Month + "-" + System.DateTime.Now.Day + " " + System.DateTime.Now.Hour + ":" + System.DateTime.Now.Minute + ":" + System.DateTime.Now.Second); }
一条这么长的语句就被写了出来
自然地,楼主的第一反应是这么一个一个的获取,会不会很消耗性能
性能问题先妥协一下吧,反正不是经常用,能得到策划要求的格式是极好的
这时打印的格式为
2016-12-8 13:47:39
确实把“/”改成了“-”
PM下午标志也没有了
可是
可是
这还不是楼主想要的格式啊
于是只能再去搜搜搜
偶然间看到一行代码
System.DateTime.Now.ToString("hh:mm:ss");
然后写出来Debug了一下
13:52:03
诶,ToSting感觉靠谱,秒的显示终于是03而不是3了
年月日能不能也用这种格式写呢?
System.DateTime.Now.ToString("yy-mm-dd hh:mm:ss");
打印结果 16-54-08 13:54:32
哇,08终于打上去了
可是,54月是什么鬼。。
仔细一看,月份上显示的是分钟
这个yy-mm-dd里面的ymd是我自己蒙的。。
因为我看hh:mm:ss里面的hms不是hour、minute、second的缩写吗
又仔细查了一下
原来月份使用MM来表示的,mm表示的是分钟
还有,这个16也不靠谱啊,应该是2016
然后自己改了个yyyy
哈哈,还真就是这么回事
至此,还有最后一点儿问题
就是这个小时,原来的时候有一个PM表示下午
可是现在没有了PM,01点跟凌晨的1点有什么不一样呢
于是又自己尝试了下,
把hh改成了HH
哈哈哈哈,居然又成功了
至此,格式就变成了
2016-12-08 13:59:36
完全符合策划大大的要求
打完收工o.o
最后的代码是酱紫的:
void Start() { Debug.Log(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); }
所以呢
大家就可以按照我的探索路径
来随心所欲修改时间显示的任意格式喽~
2020/1/3增:
听说好多程序员在元旦,也就是2020.1.1都回去改Bug了
原因是输入了2019.12.31后,都自动变成了2020.12.31
原因呢,就是因为他们使用的是‘YYYY’,而不是‘yyyy’
为什么呢,看一下这个就知道了
所以,年份的格式上,要记得,是用yyyy哦
附:
声明:此博客为个人学习之用,如与其他作品雷同,纯属巧合,并请明示指出