00:00
好,这个类的话呢,我们就说到这儿就结束了,然后接着的话呢,在这个JDK8之前还有一个类,这个类呢,叫做calendar这个类。叫日历类calendar啊,这个类的话呢,关于它的使用也是涉及到实例化,还有它的一些相关操作,那这块其实讲这个内容呢,其实比较无聊的啊,就是大家知道这个类呢,我们能干什么,哎,里边这个方法呢,怎么调其实就可以了啊,没有特别高深的这个技术了,行,那咱们来看下这个类的一个使用,看这呢叫calendar。呃,这个啊,它叫日历类啊。那它的一个使用。那test开。行,这个呢叫日历类,然后呢,它怎么去用呢?首先也是涉及到一个问题,叫做实例化啊,就是创建它的对象,那创业大对象呢,我们考虑的就是要么呢大家看一下API,要么呢你就看一下这个类的这个源码,好比如说看一下源码,Ctrl c ctrl shift t啊然后就它,然后呢,我们双击进来,进来以后发现,诶这哥们儿呢,是一个。
01:14
Obstract啊臭氧类,臭氧类的话呢,你是不是就不可以说直接去扭一下构造器就造了是吧?啊压G呢,就它不可以实例化了,那既然它不能实例化了。还在讲它,那是不是就得用它的子类去造对象了,哎,对的,那么这时候呢,我们就提到它的一个子类啊,就是叫这个啊,叫这个类了,那大家呢,可以去逆用它的对象,这是方式一啊,去创建它的对象,另外的话呢,我们还可以去调这个calendar,虽然说它是一个镜,呃,这个这个抽象类不能够直接实例化了,但是它有一个静态方法叫get instance,咱们呢,可以调calendar get instance这个方法啊。那这个我们稍微说一下,这个日历类呢,它是一个抽象类啊,它是个抽象类了,它的实例化的话呢,其实分成两种方式了,第一种我就哎不直接在这块去写了啊,相当于这个叫方式一啊去创建其。
02:14
子类的这个对象,这个子类呢,提到就是它这个单词呢,还不太好写,哎,通常呢,咱们就不爱直接去用这个子类了。哎,我们呢,通常都要选择这个方式二,哎方式二的话呢,就是调用它的静态方法,哎这些静态方法呢,叫get instance这样啊来看一下calendar,第2GET一个instance,哎,这呢,我们就造好一个对象了,然后out enter一下,给它生成一个对象,哎,就叫calendar。啊,这呢,就拿到这个calendar了啊,那这个calendar的话呢,那肯定你得知道啊,这肯定不是说在这里边又是new的,它的构造器不可能这样类嘛,那那这个对象的话呢,是谁呢?那很显然也得是它的子类的对象,只不过呢,在这呢,返回的类型就要calendar了,你看不到它的子类是哪个类了,其实呢,大家CTRLCCTRL v.s out一下谁呢,它点叫get class。
03:18
这是咱们object当中定义的一个方法,我能够看到这个对象呢,是哪个类造的?好,大家看实际上呢,是不是还是我们这个,诶,还是这个子类啊,只不过呢,这个子类呢,有时候咱们就记不住了,这个名字还挺长的诶,所以呢,我们就只需要记这个get ince就行,其其实相当于方式一方式二呢,最终呢是一样的,这里边也是new的这个子类对象,好这个呢就是实例化的问题,过了第二个它的常用方法,我们呢,用到这个日历类的时候呢,都干什么事呢?通常呢,就会做这样几个事儿,第一个事儿呢,叫做get操作。哎,我先写出来啊,然后第二呢,叫做set操作。
04:00
啊,然后还有这个具体的叫爱。啊操作,哎,另外呢,还涉及到跟我们这个date之间的一个转换,哎转换呢涉及到叫gettime和settime。行,就这样的几个方法,或者叫几波方法啊,那么我们分别呢,来体会一下,看看是什么意思,首先这个calendar这个对象CTRLCCTRLV,哎,我们呢,去调一个get的方法。这个get的方法里边呢,需要填一个int型的叫field,填一个int型的值,这个填谁呢?这块呢,咱们又得看一下API了,这块呢,我们在这个位置看也可以啊,诶我还给删了,或者的话呢,我们在这个API这块也行,CTRLV啊这个双击进来,诶打开好往下走。行,我们会看到呢,在我们calendar这个日历类当中呢,定义了很多的属性啊,而这些属性呢,你看都是static一个常量啊,Static的啊,是这个静态的哈,点开以后的话呢,你看都加上这个final了啊,你从这也能看出来,它都大写的啊,大写的话呢,都是常量了,呃,这个常量呢,就记录了一些我们常的一些信息哈,比如说像呃,你是这个月的第几天呀,你是这一周的第几天呀,你是这个月里边的这一周的第几天呀,呃,你是这一年的第几天呀,等等啊这样的一些属性,那咱们现在呢,需要的其实就是这个信息,我呢就可以获取一下,比如叫calendar,第二我们想获取一下呢,比如说是这个月的第几天。
05:38
我们就第二下叫day of month。嗯,通过这个日历,其实当前我们获取的对象呢,也对应的就是咱们当前的这个时间啊,当前这个时间呢,是这个月的第几天,就这个意思啊,那out enter一下生成一个变量,这个我就叫一个this吧,哎,我们的这个dis.s out一下执行。
06:04
你看这就出来了18,诶咱们正好呢,今天不就是18号嘛,哎,就是属于这个月的第几天啊,这样就出来了,就是相当于我们可以获取一些平时大家爱用的一些这个数据了啊就这个意思,好,那比如我们再去输出一下,嗯。哎,比如说我们还拿这个叫calendar点,哎,我们去get这呢,我们去输入一下叫calendar.get啊不是get了啊直接呢,就点这个属性,嗯,这一周的第几天,或者呢,是这一年的第几天。啊,这个都行。哎,今天呢,是我们这一年的第49天,就是这个意思。那这就比较方便了,你像刚才我们那会儿呢,不是还说到说你算一下这一天是这一年的第一天啊,当然呢,这个时间呢,目前你还没办法通过这个calendar呢去指定哈啊,因为咱们这个呢,是转换成了date了啊,你想用calendar说这一年的第几天想调这个方法,那你想办法还得把刚才那个字符串呢,转成一个calendar才行啊,那就得涉及到这块了啊行,这呢是一些get操作,不多说了啊,这就是get可以获取一些我们呃常用的一些属性信息啊,那么下一个呢,叫做set。
07:21
啊,那很很自然的,这个就是相当于get方法一样,这个呢就是一个设置的方法了,那我们拿着这个calendar这个对象点set,可以将指定的这个属性呢,设置成一个新的值,这本身也是我们set的一个意思,比如说哎,我把刚们刚才咱们上面提到的说呢,是这个月的第几天,这个事儿,我想给他改一下,改成了这个,比如说22号。啊就改了啊改完以后我们这个赛的方法,它是一个VO的,这个要注意点,它是一个VO的,那言外之意相当于就是把是不是这个开的本身就给改了。
08:01
就把他自己里边的这些信息就给改了,那改了以后呢,我们再去get一下。嗯,咱们再去get一下这个,我就直接还用上边这个this了。看一下。那刚才呢,是这个月的第18号,改完以后呢,就变成22号了,那就改成22号了,就是这呢,我们就相当于是就把当前这个开的对象呢,这个它本身就会改了啊跟咱们这个前面讲的那个string不太一样,String呢你像调一个比如说replace的方法。哎,Replace方法,我调完这个方法以后呢,返回的这个值是你replace以后的那个结果,这个string本身没有变,咱们把这种特性呢,称作叫不可变性。哎,这个车型称诺叫不可变性,那这里边这个calendar相当于它是不是可变的,对咱们对它呢,本身做了修改啊,好,这是这个事情,那这个set相关的一些属性都可以改,我就以它为代表说了一下啊过了在下边,在下边呢叫at操作在原有的基础之上呢,去添加的意思,比如说我们拿着这个对象,第二我去艾特,那还是这个类似的这个行参啊,咱们比如说还改它。
09:20
诶,CTRLCCTRLV一下,嗯,还去修改一下当月的第几天,我那写一个三。啊,写个三,那就是相当于在我们现有的这个DA mass的基础上呢,加了三天,那艾特方法本身呢,看看返回值还是个wide的啊,那就是还对这个calendar呢进行了修改,那接着我再去获取一下,是第几天啊再来。哎,刚才呢是22号,咱们呢往上面加了三天,哎,这不就变成25号了。那这是往上去加啊,那我要想减去几天呢,诶减几天的话呢,你去看一下我们这一篇,它没有一个方法叫miniins啊,就是减法那个单词没有,没有的话呢,那就还用这个加,只不过呢,把这个位置呢改一下,改成个负数就行了,加上一个负数就相当于是减了,哎,这就又回去了。
10:16
哎,就是这个意思啊,其实比较简单,这里边呢,唯一变的就是这个大家属性回头你需要的时候呢,诶对他们进行一些调整修改就行啊,这个呢叫爱的操作,好在下边呢,涉及到我们这个calendar和这个date之间的一个转换了,比如说首先呢,我们看这个叫get time,我拿着这个calendar的对象。点二我去get time,那我返回的就是一个date啊,点一下啊,这个呢,Out enter,我们得到的是一个date,那这个方法相当于咱们是不是就通过一个就相当于是把一个日历类啊啊。哎,把它呢,就是对应它得到了一个date的对象啊,就相当于这样的一个操作了,那日历呢,得到一个date,这个date的话呢,你也可以去输出一下,看看它的这个信息。
11:11
那你看这个信息啊,是这个咱们呢,刚才这不改成19号了,所以这不就成了二月19了。啊就确实呢,就是是你改以后的这个啊,这个calendar对应的我们这个date是多少啊,这是它那相当于呢,就把这个你日历类啊这个对象改成date,那set他呢正好反过来,哎,如果呢,现在我们有一个date,你可以呢,把这个date呢,这个时间给它设置为咱们当前这个日历类的一个时间。行,比如说我这时候就拿咱们当前这个时间吧,只是获取一个当前时间啊,Out enter一下。Enter,哎,我叫date一行啊,这个DATE1我们现在来拿这个叫calendar,第二我去set一个time,哎,我把这个DATE1放到这。
12:04
呃,放到这了,放到这儿以后呢,相当于咱们这时候就把这个时间重新给修改了一下,我们这个calendar,那修改完以后,比如说我们再想获取一下这个,呃,是这个月的第几天。哎,再调一下这个get。那又变成了这个18号。哎,就是这个样子的啊,那那大家呢,你可以呃,这块在这块的时候呢,你也用不着自己去写Switch case了,你想想啊,我们呢,有一个它电一的话呢,涉及到过把这个字符串改成一个circle,咱们用不着circle了,我把它变成一个U下的date。那U下的date得到以后,你拿这个U下的这个date,我是不是这样调,它就把这个日历类就拿到了。然后这个日类拿到以后呢,你可以去get叫day of year,这是不是就直接找到这一年的第几天了,哎,就用不着自己这块呢去写,所以开去讲了,哎可以这样啊,就更简单一些啊,所以呢,这里涉及到这几个结构啊,我们就都讲完了。
13:11
嗯,这个从上往下说一下啊,这个current minutes,这两个data SIM format calendar。你看这样呢,就结束了,这是我们JK8之前涉及到的这样相关的一些API啊。
我来说两句