文章目录
- 第一代日期Date类
- 第二代日期Calendar类
- 第三代日期LocalDateTime类
- 4. Instant类 时间戳
第一代日期Date类
jdk1.0引入
1.第一代日期类
包含两个构造器,Date()和Date(long);
new Date();精确到毫秒
Date(time)如果time是Long类型的会将毫秒转为时间,例如65毫秒转换为00:01:05
默认输出格式:Mon Oct 31 14:32:17 JST 2022(星期 月份 日 时分秒 JST 年)
SimpleDateFormat:格式化和解析日期的具体类,允许进行解析(文本->日期)
常见的格式:yyyy年MM月dd日 D HH:mm:ss:SSS(hh代表12小时制、SSS代表毫秒、D代表今天是这一年的第几天)
new Date(long):通过指定毫秒数得到时间
new SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss:SSS”).parse(“2022年10月31日 14:58:22:119”)
可以将格式化的字符串转换成默认日期格式(日期 -> 文本)
s字符串中的日期格式必须和simpleDateFormat括号里的日期格式相同,才可以使用simpleDateFormat.parse(s)
默认日期格式—自定义日期格式,相互转换
第二代日期Calendar类
- Calendar类是一个抽象类(抽象类不能实例化),构造器是私有的,可以通过getInstance()来获取实例
- Calendar类提供了大量的方法和静态属性供程序员使用
- jdk1.1引入
1.Calendar没有提供对应的格式化类,因此需要自己组合输出日期
第三代日期LocalDateTime类
构造器
- jdk8引入
- LocalDate()输出年月日
- LocalTime()输出时分秒
- LocalDateTime()输出年月日时分秒
1.LocalDateTime.now();返回当前时间
2.创建DateTimeFormatter类对象进行格式化
4. Instant类 时间戳
构造器
1.Instant.now()静态方法获取表示当前时间戳的对象
2.将Instant对象转换成Date
3.将Date转换为Instant对象