一、第一代日期类
1.Date类:精确到毫秒,代表特定的时间
2.SimpleDateFormat:格式和解析日期的类
2.获取时间的三种方法
二、第二代日期类
1.Calendar:Calendar类是一个抽象类,并且构造器私有化,因此提供了一个getInstance()方法来获取Calendar对象。它为特定瞬间与一组YEAR、MONTH、DAY_OF等日期字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。但是并没有提供对应的格式化的类,因此需要自己组合输出。
2.常用的方法
三、第三代日期类
1.前两代日期类的不足
① 可变性:向日期和时间这样的类一个是不可变的
② 偏移性:Date类中的月份是从1900开始的,而月份都是从0开始
③ 格式化:格式化只对Date有用,Calendar则不行。
④ 此外,他们也不是线程安全的。
2.LocalDate:只包含日期,可以获取日期字段
3.LocalTime:只包含时间,可以获取时间字段
4.LocalDateTime:包含日期和时间,可以获取时间和日期字段
常用方法:LocalDateTime包含LocalDate和LocalTime
5.DateTimeFormatter:对以上三个类进行格式化
6.Instant:时间戳,可以与Date相互转换