Java基础教学 日期类Api导学

前言

在java面世的时候就提供了Date类和Calendar类
但是这两个类都存在并发下线程不安全的情况
jdk8中引入了time包
本次期望能学会jdk8下面java.time包下面的常用方法

案例

已知小李为1995年12月23日出生,请问他距离今天已经过去了多少天?
Java基础教学 日期类Api导学_第1张图片
Java基础教学 日期类Api导学_第2张图片
老版本计算比较困难,而且容易在毫秒值出现误差

案例 2

学到了Date和Calendar两个类,一定会学到SimpleDateFormat来进行转换
Java基础教学 日期类Api导学_第3张图片
SimpleDateFormat会有一个clear的操作
所以多线程的时候,当一个线程刚进行clear,这个时候Cpu的时间片被抢夺了,另一个线程开始进行构造的时候发现Calendar这个变量已经为空了,所以多线程就会出现异常
Java基础教学 日期类Api导学_第4张图片
只能用synchronized来修饰保证同步代码块

小结

旧的Date与Calendar还有SimpleDateFormat
存在使用复杂切多线程情况下线程不安全的问题

Time学习

Java基础教学 日期类Api导学_第5张图片
可以看到Time的Api中均不可以使用new关键字去创建对象
而是用now方法去创建每个函数的对象

Java基础教学 日期类Api导学_第6张图片

Of方法

LocalTime LocalDate LocalDateTime

获取时区

Java基础教学 日期类Api导学_第7张图片

Month枚举

Time包引入了Month的枚举
直接拿来用即可
标准十二个月的常量
Java基础教学 日期类Api导学_第8张图片

创建时间

Java基础教学 日期类Api导学_第9张图片

根据现有实例创建日期与时间对象

plus 加 minus 减法

Java基础教学 日期类Api导学_第10张图片
Java基础教学 日期类Api导学_第11张图片

with的用法

Java基础教学 日期类Api导学_第12张图片

调节器

Java基础教学 日期类Api导学_第13张图片
Java基础教学 日期类Api导学_第14张图片
Java基础教学 日期类Api导学_第15张图片

Date与Time之间的转换

Java基础教学 日期类Api导学_第16张图片
Java基础教学 日期类Api导学_第17张图片
Java基础教学 日期类Api导学_第18张图片

SimpleDateFormat的替代品

SimpleDateFormat是线程不安全的
Java基础教学 日期类Api导学_第19张图片
Java基础教学 日期类Api导学_第20张图片

自定义

Java基础教学 日期类Api导学_第21张图片

你可能感兴趣的:(入职后的自己,java,jvm,开发语言)