文章目录
- 一、引入
- 二、`LocalDate`
-
- 1)获取当前时间的日历对象
- 2)获取指定时间的日历对象
- 3)获取到日历中的每一个属性值
- 4)判断系列的方法
- 5)修改时间系列的方法
- 6)减少时间系列的方法
- 7)增加时间系列的方法
- 8)扩展
- 三、`LocalTime`
-
- 1)代码示例
- 2)应用场景
- 四、`LocalDateTime`
一、引入
在刚刚我们已经学习完了新增时间类的前两部分。
第一部分,它跟JDK7以前的 是类似的,它们的对象就表示当前时间的对象 / 指定时间的对象。
第二部分 ,它跟JDK7以前的 是类似的,可以用于时间日期的格式化。
再往下,我们接下来学习第三类。在JDK7以前的时间类中,还有一个 日历类,通过这个日历类,就可以对时间里面单独的年、月、日进行单独的操作。
JDK8同样也有类似的跟日历相关的类,一共有三个。
- ,它里面包含了 ,这个类是没有 的
- :它里面包含了 ,这个类是没有 的
- :它就包含了所有
在这三个类中,它里面的方法也是非常有特点的,跟之前一样。

除此之外, 还可以转成 、,因为它是最长的,用的方法就是 开头的方法。
二、
它只包含 ,没有
1)获取当前时间的日历对象
如果我们调用静态方法 ,就可以获取到当前时间的日历对象。
2)获取指定时间的日历对象
方法中可以传递 ,将指定的时间写进去。

3)获取到日历中的每一个属性值
的方法可以获取到日历中的每一个属性值
要注意,在获取月的时候,获取到的是月的对象
如果直接打印的话,打印到的是对象里面的信息
但如果我不行看到这个,我只想看到阿拉伯数字,有两种办法。
方法一:用月的对象再去调用 方法
方式二:我们在用 获取数据的时候换一个方法:,即获取月份的数据信息。
此时方法会返回一个,这个值就是阿拉伯数字
获取日期,:月中的某一天,即几号
最基础的用java编写日历
获取一年中的第几天
获取星期,只不过这个方法返回的也是星期的对象
如果想要看到阿拉伯数字,还需要再调用 方法就行了,跟上面的 是类似的
PS:上面的方法不需要去背,你只要知道 开头的就是获取就行了,我们直接使用 调用 ,IDEA都会有自动提示,然后根据提示出来的方法名自己猜也能猜到。

4)判断系列的方法
开头的方法表示判断,判断两个时间谁在前谁在后。
5)修改时间系列的方法
with开头的方法表示修改。PS:只能修改年月日。
下面例子就是将年修改为 。
验证:跟之前一样,对象里面的数据是不能发生改变的,如果你要修改,它会产生一个新的 。
我们可以拿原来的日期对象跟修改之后的日期对象做一个 的比较
6)减少时间系列的方法
minus开头的方法表示减少,只能减少年月日

PS:如果参数传入的是负数,那就是往前加,但是这种方式比较反人类
7)增加时间系列的方法
plus开头的方法表示增加,只能增加年月日
PS:如果参数传入的是负数,那就是往前减,但是这种方式比较反人类
8)扩展
利用这个类就可以解释我们平时在玩手机的时候遇到的一个场景:每年你过生日的时候那些银行、移动、联通都会给你发一些短信,它是怎么实现的呢?
其实就可以用我们刚刚所学习的 表示。
判断你今天是不是过生日,跟后面的 没关系,我只要 就行了。
因此在这就可以写两个对象。
第一个:用 调用 ,把你的出生年月日封装成
第二个:将当前时间封装成 。
还没完,这里又出现了一个新的类:,它表示的是 对象。
我们可以选中 ctrl + b 看下源码
在 的 中可以指定月份、日期,将它们两个封装成 对象。
然后再把今天的时间去封装成 对象
最后将两个 对象进行比较,如果相同,就表示你过生日;如果为 ,就表示你今天不过生日,明天再判断就行了。
三、
它的用法跟 一样,只不过它里面包含的是
1)代码示例
2)应用场景
这个类只关注 ,所以在计算时间的时候,它比较精确。
例如之前说过的秒杀活动。在秒杀活动中,差一秒钟都会导致你这个活动没有参加上,因此在这种情况下,对时间的精确性非常的有要求,并且此时 在这里也是没有用的,这种情况下关注更多的是 ,因此此时会使用 更多一些。
四、
这个类中包含的东西是最全的: ,并且用法跟之前一样。
这些代码不用自己写,将下面示例代码导入IDEA中看看它们的作用就行了。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/19965.html