00:00
各位,我们接着来看一下goon时间和日期相关函数的下面的内容。大家知道在我们这个编程的时候呢,我们经常会用到时间相关的常量,比如说我们最通常的时候,我们可能会去休眠,就是对对程序进行休眠,那么在休眠的时候呢,我们会用到一个函数叫sleep。在sleep就是休眠的意思,那sleep休眠的时候呢,我们会指定休眠多长时间对不对。那休眠多长时间呢?这地方就会用到一个时间的常量,这个时间常量是这样子的。二注意听啊,这个时间常量用的还是很多的,它是注意这个时间常量是time这个类型里边的常量。那么有几个常量呢?第一个是小时那分钟。秒,这是什么呀?这是毫秒。
01:01
这是微秒,这是纳秒。他们之间的这个单位关系是一小时一,一个小时等于60分钟,一个分钟等于60秒,而一秒等于1000毫秒,而一毫秒等于1000微秒,而一微秒等于。1000纳秒,因此纳秒是最小的,那这个常量在哪定义的?我给同学们看一下手册,大家要学会看,手册在哪里呢?同学们可以看到,在time这一块。在time这一块,我们往下拉。往下走,往下走啊。我们直接直接看一下往下走。你看在这里看到没有。有个duration,这个duration。这个类型表示两个时间点经过的时间,怎么是在这定义的呢?
02:00
怎么是在这定义呢,它就是在这定义的这个类型在定义的,你看这是不是刚才老师看到的这这几个常量值啊。这几个常量值,好,这几个常量值我们知道了过后呢,我们来用这个常量的用处在什么地方,比如说在程序中可以获取指定时间单位的时间,比如说我们想获取1000毫秒,就怎么获取呢?就用100乘以time,点这个常量就可以了。这个就可以了,说老师,那我能不能用一秒去除以十,不是也可以拿到100毫秒吗?不可以。待会我给大家演示啊,你不能这样用,说老师我这有一我想拿到拿到一一毫秒,我这样除它不就完了吗?这不行的,比如说你用这个time点周老师我这样写time点这个除以。除以十,它不就是1000毫秒吗?不对,因为这个东西它是一个一一除以十变成一个小数了,小数的话他就不认明白我意思吧,所以说这个地方是这种写法是不对的,这就是为什么别人这个go浪的设计者,他要去设置这么多常量的根本原因。
03:12
这是时间的常量,这个一定要有印象啊,待会呢,我们在用的时候,你会看到这个常量很有用,比如说我们要去休眠一段时间。就会用到这个常量,好,我们先把这两个呢给大家整理到这来,一个是时间常量的一个整理时间常量,看到时间常量。那时间时间长量呢有哪些?这个同学们要有一个认识。这块我先把它拿过来好吧。我先把它拿过来。就这样子,常量就这些,那既然有常量,我们就来看看常量的一个应用。常量的应用。好,我先写到这常量的作用是在程序中可以获取到指定时间的单位,比如说100毫秒。
04:03
我们来看使用。结合,比如说结合。结合什么呢?就是sleep。Sleep来使用一下什么呢?常量,时间常量。时间长了。好,我们来看一个案例。我们看一个案例,比方说现在我有这么一个案例,同学们我想。循环的输出一句话,我想循环的输出。一二三四五六七八九十,我怎么写。这里我有个要求啊,需求如下,需求每隔一分钟啊,一秒钟,一秒钟就打印。打印。打印了打印一个数字。一个数字。数字打到多少呢?打印到打印到这个一百十就退出。就退出,那这个对我来说是不是很简单呀,一个for循环就完了,那我怎么打印呢?我在外面定义一个常量啊,定义一个变量叫VR,这样写吧。
05:12
等于零。是不是,然后进来过后呢,我先来个I加加没问题吧,Form print,然后就输出I打印完了过后我休眠。休眠的时候也是用time这个这个包里边,这个time包里面有个sleep,那你休眠的时候你怎么休眠呢?诶sleep。你休眠的时候,你休眠一秒就得用上写time里面的一个常人叫second。是不是这个second老师刚才是不是讲了一个second秒,好,我们来运行一下。我们来预习下,看看这个效果是不是已经出来了,走。看一下一二,你你看是不是每隔一秒就输出了这个数字。
06:00
但是因为我是死循环,所以说我只能按CTRLC强制退出,我可以加一个判断。就可以退出了。如果I等于了100。那么我就怎么样,Break就完了,对不对,Break就完了,所以说你看这个场景就用到这儿了,但是现在需求又又发生变化了。我现在这样需求,需求二。我现在呢,要求每隔什么呀,我每隔1/10毫秒有0.1毫秒。打印一个数字,打到100时就退出,你怎么写?可能有同学会想,诶老师这个很简单呀,0.1,那不是乘以一个0.1就行了吗?实际上你这样做编译器就通不过了,大家看一下。你这样写,你看它编译就通不过。他说啊,他说。0.1是不能交给这个整数的,因为这方要传一个整数进去,你传一个0.1根本不认。当然,一秒乘以0.1,确确,确确实实是0.1秒,但是它从这个编译器就过不去。
07:04
那怎么办呢?诶,同学们,我们还记不记得刚才老师说一个常量,它是不是有一个叫毫秒的这么一个常量啊,那我这样写不就完了吗?这是。一毫秒,那多少毫秒是0.1秒呢?100吗?这样一写,不就解决问题了?大家看是不是这个道理啊,诶也就是说原先我们休眠一秒是这样写的,那休眠你看原先CNCCD对吧,我们休眠一秒是这样写的,那么我们休眠0.1秒就得这么写,而不能像我们刚才想象的那样乘以0.1,这就是别人给我们设置常量的根本原因一能理解吗?不然的话,你这题就完成不了。好,我们来跑一跑。看运行起来走。你看是不是0.1秒就输出一个数字,100很快就到了。
08:03
实际上就是十秒钟就输出来。退出了。马上退出来,OK,好,这就是我们讲的一个sleep结合时间常量的一个案例,大家看一下。好,我把这个案例呢给同学们放到笔里面去。大家知道,现在知道为什么需要这个产量了,对不对,如果你没有产量的话,你完成不了这个任务,你不能在这个基础上乘以0.1,编译器过不去。就这么简单。好的,把它放这。好,同学们,那这个呢,就是我们的这一个时间常量和休眠,我们接着再来看。在时间和日期里面呢,还有两个相当重要的方法,一个是unix时间戳,一个是unix纳秒时间戳。这有什么用呢?就说在我们编程的时候,我们经常会去,我们想获取一些随机的数字,当注意听它的作用啊,作用是。
09:02
可以获取。可以。获取,获取随机的随机的数字。如果你想获取随机的数字的话,那你用这个unix或者unix纳秒就非常方便。你比如说我们后边要去用一个数学函数,叫random。如果我们不去下一个种子,下一个随机种子的话,那你每次获取的随机数都是一样的,这就不行,而且呢,Unix的这个随机数式,它是它是获取到。一个秒数,而unix纳秒呢,是获取到一个纳秒数,这个这个随机数,它就就更更随机了,因为它是。精确到纳秒的,那么我们先来看这两个函数究竟是什么,我们看一下手册。打开我们这地方,我们先找到time。我们先找到time这个类型。啊,Time类型在这对不对,我们随便找一个time。
10:00
往下看。大家看到time这个地方呢,就有一个。哎,我们往下往下往上找一找。诶,大家有没有发现在这已经找到了这看。Unix unix纳秒,那么unix将会返回什么呢?它会返回从这个1970年1月1号到现在的一个秒数,就是说从1970年1月1号零时零分到现在经过了多少秒,那肯定你每次执行的时候都不一样。对不对,因为你每嗯时间在不停的变化嘛,还有一个呢,就是unix纳秒,它是获取的从1970年1月1日到现在的纳秒数,纳秒肯定就会。更变化更快了,时时刻刻就会变化,所以这两个函数呢,大家要有一个印象,好吧,我把这两个函数先给大家放到这个笔记里面来一下。好,我们讲一下这个time的。
11:00
Time的。这个unix和。和什么unix纳秒。的方法,其实他是他这是他的方法啊,现在方法还没说,大家姑妄听之。我把这块呢,先给同学们放到笔记里面来,大家有个印象。来看。你们有没有发现这个地方跟我们编的函数不太一样了,它是。他是把这个类型写在前面的。这个这个返回类型在后边,这个其实就是表示这是一个方法,但这个方法呢,只能在time这个类型用,其实这个这个叫方法,只是现在我们还没讲,你姑且先暂时用一用好吧,因为有时候老师再怎么讲都有可能会涉及到一些。就是后面会讲的东西,但是还能理解,你姑且就把它当作函数也可以。这个,但是这个函数呢,只能是time这个类型才能用的函数,你先这么理解就可以了,明白吧。
12:04
啊,OK,后面我们还会专门讲这个,这个是怎么回事,好吧,大家先暂时的听一听,好我把它先拿过来,诶我们有截取吗。对了,我忘了截取了是吧,我忘了截取了。好,我把这个碳。类型的两个方法,给大家拿过来用一下。那既然有了,过后呢,我们就来整个案例给大家演示一下它是怎么用的,来看一个案例。呃,给大家使用一下,使用一下。看啊,就是unix。和unix纳秒。Unix纳秒使用。的使用。好。使用刚才我们已经讲过了,这个尤格是返回1970年1月1号零时零分到现在的描述,这个是返回从1970年1月1号零时零分到现在的纳秒数是吧?也也就是说返回的都是一个整数,能理解好是用一下就行了。
13:09
Print n f,好吧,直接这样写。Unix。时间戳。时间错。好,等于多少呢?问一下好吧,UN是纳秒。Unix纳秒。时间说。它也是个秒数,但是呢,它是纳秒纳秒数,好这个地方就用闹,我们前面是不是已经已经拿到这个闹了。是不是前面已经获取到这个闹了,对吧,这个now就是time类型的。然后呢,Now点多少呢unix。括起来。然后要获取到纳秒数。unix纳秒。写完了。但是因为上面这个家伙呢,呃呃也十秒钟,我懒得等了,我把它先注销一下,好吧,先注销一下没啥,没什么问题,我直接给大家运行一下看效果,为了好看,我们来个斜杠,恩。
14:09
跑起来。看一下。而且你每次执行的时候都会变化,看有时间说是这个,而那秒数看这个数很大的对不对,你看你在马上执行,它又会变化。你看会不会变化呀,你看这。是变化了。你看原先是六零,现在变成六九了,这个也在变化,那这个变化就更快了,因为它是按纳秒来算的。大家看一下这个使用就行,好,我把这个的使用呢,也给同学们拿到这里来。好,这一块就是我们获取unix时间戳和纳秒时间戳的一个案例。一个案例。把整理一下。然后呢,他得到的一个输出的结果,得到的结果是。结果是什么呢?我把它给大家。放到这里来,大家看这里它输出的结果。
15:03
就是这样子的。对吧,你看这里是。十秒秒数,这个是纳秒数,就是从1970年1月1号零时零分到现面现在的一个纳秒数,显然后面这个数肯定更大。因为它的精度不一样。好,同学们,那关于我们时间和日期的第二部分的内容,我们又给大家介绍完了,这里面这里面呢,重点就是给大家介绍了什么呀,介绍了时间的常量。还有一个sleep。函数,还有就是什么呢?还有就是我们这这个地方unix时间戳和unix纳秒时间戳的一个获取,将来你们在做开发的时候呢,会用到这个unixx或者是unix纳秒来获取一个随机数字,因为在我们做编程的时候,往往都会有这种需求。这个需求还不少啊,经常会用用,想去获取一下随机数字,你就可以想到老师讲的这个方法啊,这个这个方法就可以完成这个事,好了,同学们,那关于这一部分呢,我们就给大家先介绍到这里。
我来说两句