00:00
好,那下面的话呢,我们就来看一下这里边涉及到的这API啊,我们呢,就一个一个来讲一下啊首先呢,我们来讲呢,就是这个叫哎,Local data local time,哎local date time这样的三个类,哎这三个类,哎这三类呢,我们来说明一下,直接呢先粘过来啊它的使用行,那么这三个类的话呢,我们直接呢来写测试,那avoid test我就写TEST1吧,这样成那么这三个类,这三类呢,其实我们看这个名字呢,也基本上能看出来,这个呢,就是本地的一个日期了,对,这是只有只有本地的时间,对这个呢就是哎日期时间都有,哎对日期呢就是咱们说的年月日啊,时间呢就是十分秒这样的概念成那么这三个的话呢,我们首先关心的就是如何去实例化了,这呢,我们直接来看一下,下边提供这一篇啊,看着挺。
01:00
多,其实呢,我这分成了几个颜色,这个黄色的话呢,就是用来实例化的,呃,然后这块呢,这个橙色的都涉及到就是get的一些操作了啊,白的呢,相当于是一个set操作,这呢相当于一个加减操作,这样我简单一说,其实呢,你会给它去类比一下我们讲的GPK8之前的某一个结构,它有点像谁呢?对,有点像calendar,咱们calendar当中,这不也有get操作,也有这个S操作,还有这个加减操作,咱们都用的aar。啊,其实呢,跟它有点像啊,那你可以这样去理解啊,可以这样去理解,那么首先呢,我们来看到如何去实例化,实例化的话呢,这块其实主体上是分成两种方式,第一种呢,就是这个闹的方式。哎,我们呢,直接去调,这都是静态方法,比如说这三个类的话呢,我们就都体会一下,这个叫local,呃,这个date点,我们来一个now,就是获取当前的一个本地的日期,Out enter一下,呃,Local一个date,这样然后呢,再接着local,呃,先来一个碳吧。
02:08
哎,点闹一下,闹就是咱们现在啊,当前这个时间。好,再接着。Local date time这三个类当中呢,咱们用的local daytime呢,要稍微多一些,年月日十分秒就都带上了。然后al enter一下成这三个都有了,然后我们去这个输出一下。Local data local time。Local data time。哎,就这么着,来跑一下。行,这就出来了,嗯,这个19年2月18号,这是local date,哎,Local times,这是这个时间,这是这个这个鸟好毫秒了是吧,然后这呢年年月日十分秒就都有的,那比较好理解,行这呢相当于是这个实例化的第一种方式,咱们调的这个叫闹啊这呢相当于是获取这个当前的日期,或者是呢时间,或者呢是日期加上这个时间,诶这样的一些情况。
03:15
行,这就过了,这是一种方式,另外一种方式呢,可以通过这个二五方法去掉,就这里边写的这个事。这个O,这个方法O的话呢,相当于你可以指定日期时间。举个例子,嗯,这呢,我就直接拿咱们这个local daytime了啊,这三个类当中呢,这个类呢,是我们用的比较这个多一些的啊,这个呢是这我在这标识一下。那说明就是这个类相较于相较于另外的这两个类呢,我们用的频率上要高一些,行,那么local daytime这块呢,我们去点一下,它有一个静态的叫O物方法,这个方法里边我们就可以找到啊,它可以直接呢让我们去前年月日时分秒是时分没有秒了,找一个可以有秒的这个就可以了。
04:12
啊,这个ctrl out斜杠是不是也能看到年日时秒,我们可以找这个行,那这里边儿呢,比如我们就写上2020年的这个十月,这个六号,嗯,这个13点。23分43秒,诶可以这样做一个设置,设置完以后再al enter一下,我们去生成一个变量啊叫local data time1,哎,我这呢local data time1,我做一个S。行,大家想一下啊,刚才咱们讲这个事儿的时候呢,我写年月日的时候呢,它是不是有个偏移量,对你看我现在呢,我写的就是想表示的这个时间,我没有设置这个或者没有,呃,这个写这个减偏移量的事儿,我们看这个结果。哎,就是咱们二零年的10月6号,然后这个时间,那说明呢,就是它呢,就不再有便宜量了啊,这个相当于我们去设置指定的啊年月日十分秒啊,是没有便宜量的。
05:20
哎,这个的话呢,就比较好了,那相当于呢,大家你看咱们讲这个,呃,GDK8之前的时候呢,咱们不是做过这个题目说这个,呃想表示这个某一天咱们呢,还得是不是想办法这样去转一下是吧,那现在的话呢,你这个数呢,直接就填到我们这个构造器里边,这呢十分秒,你要不想要你就别用这个local daytime了。属于localo date啊,哎,我们就得到这个年月日了,你往这边一塞,它就找到哎指定这个时间对应的一个,哎指定这个呃数对应的一个时间了。看就挺方便的哈,这个用不着考虑这个偏移量的问题,行,这呢相当于是我们对于这三个这个类型他们的一个实例化啊,用到的这个no和of,哎,这个呢获取的是当前的时间,这个呢是指定的时间,根据需要大家可以看你用哪一个,这两个结束以后,下边呢,这不涉及到几个这个具体的操作了哈,第一个呢,就是get这个相关的。
06:19
操作了,比如说我们就拿咱们当前的这个举例吧,其实这三个的话呢,三个类都有这些方法,我们只是拿其中的一个来说了,那因为它使用的频率稍微高一些,就拿他来说了,拿着他的这个对象,我们呢去点一下,我们可以去get。比如说获取一下当月的第几天,哎,这是一个,那不妨呢,我把它那直接就做一个输出了。哎,这个呢,获取的是当月的第几天啊,类似的话呢,其实可以有很多的这个操作,比如。第二,Get一下这个这一周的第几天。
07:02
第2GET一下,嗯,慢就是相当于这个月。获取这月的话呢,你看它还有一个叫get mass value,那那咱也看一下,这有很多,这个我就不一个一个一个的都列了,第二我再去get一下,它有一个叫get minute啊分钟。那获取分钟的前提呢,是你这里边得存着这个分钟了,咱们这呢,Local daytime既有日期又有分钟,所以没有问题,OK,咱们跑一下。出来了,那我们去对应一下,嗯。那就到这来吧,Get minute,现在是18分钟。03:18,这是18嘛,嗯,这个months value months value呢是二,Months呢是FEBRUARY2月,你会发现呢,这个数二月,它这个真的就真的是二了,咱们在之前那不是二,实际上是三月,对吧?哎,它从零开始的,这个呢,也没有这个事了,然后get day of week,嗯,是这一周的,呃,Day week这周的第几天,这个呢,它生成的是这个星期几了,Monday,呃,Day of month啊,第18天,哎,行,这呢就是获取相应的这个,呃,这个属性的一些情况啊,呃,就是你想要的一些特殊的一些值,这是对应的叫get的方法,嗯,接下来接来的话呢,我们还可以去对它进行一个设置,设置呢不叫set了,它叫with。
08:32
哎,调用这个with操作,哎,这个我们直接来写,比如说我们还拿这个local daytime,咱们当前的这个时间来去说啊,位位这块的话呢,我们比如说设置一下当月的第几天,我改成22吧,改了改了以后这个大家注意一下,你看我们这个方法呢,它有返回值。它有个返回值,那我们把这个返回值呢接收一下,哎,Local date一行,那此时的话呢,我去输出一下,诶诶哦,我这拿的local data来写的是吧,刚才这块呢是local datetime了一样,因为date里边反正有这个月改它也行啊,那我拿这个local date了,那local data就local data了,我们呢,先看一下我这个local data是多少,再看一下这个返回值是多少。
09:22
你看一个是他啊,一个呢是他。执行,诶大家看这个我们是做了一个修改,改成22号了,你会发现本身我们这个变量呢,还是18号,然后返回值呢,变成22号了。我们把这个特性改叫成什么呀?对,叫做不可变性啊,这呢这个local它这几个类都是啊,呃,体现的我就不都写了,体现的呢叫不可变形,哎,这个咱们呢,不是提到了,说前面那个calendar这不就不靠谱吗?Calendar的话呢,我们在这做了一个set set完以后呢,它这个把它本身就改了,它是可变形的,而现在呢,它更像是一个string一样啊,修改的话呢,是你返回值是改以后的这个数呢仍然保留。
10:15
嗯,是这个情况,你到底想用哪个呢?你这个,嗯,你要是想用这个新的,你就拿这个新的再重新去设置一下是吧,你要是人家有的位置呢,还是用的这个变量,那你还是用的原来这个值不要去你这块呢,做了一个修改,影响到原来的这个其他位置的数据就不合适了啊这个体验不可变性了,那类似的话呢,还有其他的一些操作啊啊local啊date我用的是它date date加time都行。哎,这是这个变量啊,你也可以呢,去叫with,哎做这个什么day year啊,哎,这个with our啊,就加上个小时数呗,四个小时,哎加上以后al enter一下,返回一个新的啊,这个我们也是把这个旧的呢再打一下。
11:05
哎,一个是它还有一个呢,是我们这个返回值加了四个小时。行,这呢,咱们当前的这个时间啊,不是加了四个小时位子设置相当于是吧,设置呢,就是你给改成这个四点了,嗯,这是咱们当前这个时间下午的这个三点多,然后呢,我给它改成这个四点了啊就这个情况。好,它呢就相当于咱们这个呃,设置的这个方法,哎,我这呢就泛泛的来写一下,这个叫位子,哎叉叉叉这个呢,相当于是设置呃相关的这个属性啊,这个get呢就是获取。呃,相关的这个属性行,这个一个呢是get,一个是set,然后我们还可以呢,去在原有的基础之上呢,进行一个加减的操作,比如说咱们在这个local data time。
12:03
哎,Local daytime,我在它的基础上呢,想去做一个添加啊,这个添加呢,咱们叫plus plus,我写上一个day也行,Hour也行,Minute也行,看你到底想干什么了,这个叫秒,这个叫纳秒。就是秒下边是毫秒,毫秒下边是微秒,微秒下边是纳秒,都是这个十的三次方的这个这个这个对应关系啊嗯,加上指定的几周,加上指定的几年,哎等等,比如说我就加上一个月吧,加上这个三个月。加上以后仍然呢,我们这个方法呢,它是有返回值的。那你这呢是一个local datetime,那我返回的呢,就是一个呃local datetime,你要是一个local date,我返回的就是个local data,诶很好理解,我们al enter。行搞定,搞定以后我们接着还是去输出一下local data time,加上这个三在现有的这个时间的基础之上呢,加了三个月。
13:10
嗯,现有的呢,咱们这不是这个时间嘛,2月18号下三点多,嗯,然后加了这个三个月变成就五月了。那就这样,嗯,仍然呢,体现了叫不可变性。哎,但是仍然不可变的,就是你加完以后呢,本身它还是没有变的。好,这个呢,就是一个加啊,其他的这个加,其他的这个操作我就不演示了,还可以呢,做减减的时候呢,呃,Local daytime这时候呢,我们就不是用的这个叫plus了。啊,你说减是不是写负三的,还不是它有相关的这个叫miniins miniins减几天减上这个这个六天,那这也可以啊,啊类似的。哎,所以这块呢,测试其实呃,大家知道这个方法怎么用,这块呢,其实没有什么技术含量哈,就是关注这里边儿一些特点就行。
14:07
方法呢,比较直接啊,一说啊,你一听知道什么意思就可以了。Miniins呢叫减,减了六天啊,本身呢,我们这个local daytime呢没有改啊,这个减的呢,是你新返回的值是改以后的啊,减了六天啊这个样子能行是吧?啊那总结一下就是我们这个local date啊,Local time local daytime这三个类的话呢,我们其实呢,就可以平时大家去用了,当然是这JDK这个八以后你才可以去用,这三个类的话呢,我们要想实例化呢,大家可以选择这两种方式,第一种呢,就是你就表明就是当前时间啊,那就调no,你要说想保表示一个指定的年月日呢,哎,你就调这个of。就行,下边呢,你可以获取相关的一些属性,在这块呢,我们体现上呢,就是这三个类呢,它有点是像咱们JDK8之前的那个calendar。
15:04
啊,Canada,咱们get instance其实也是获取的当前的这个时间啊,所以这块我们可以简单的去理解呢,啊说它呢,就类似于。哎,咱们前面讲的这个calendar,方便大家呢去做一个对比啊,行这呢,关于这三个类的使用呢,我们就说到这儿,除了这些方法之外,其实还有别的方法啊,这块我们就不多说了啊,主要用的这几个方法呢,我们就提了一下。
我来说两句