目录
DateTimeFormatter
主要方法
用法示例
Period
常见方法
用法示例
Duration
常见方法
用法示例
接下来继续要学习的是JDK 8之后新增的代替SimpleDateFormat的一个API——DateTimeFormatter
同样是用来格式化和解析时间的,与SimpleDateFormat相比较来说,它是线程安全的,也就是多个用户进入到一个系统中,用户可以使用同一个DateTimeFormatter。
DateTimeFormatter
主要方法
方法名 | 说明 |
---|---|
public static DateTimeFormatter ofPattern(时间格式) | 获取格式化器对象 |
public String format(时间对象) | 格式化时间 |
LocalDateTime提供的格式化、解析时间的方法
方法名 | 说明 |
---|---|
public String format(DateTimeFormatter formatter) | 格式化时间 |
public static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter) | 解析时间 |
用法示例
public class Test {public static void main(String[] args){//1.创建一个日期时间格式化器对象出来DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");//2.对时间进行格式化LocalDateTime now = LocalDateTime.now();System.out.println(now);String rs = formatter.format(now); //正向格式化System.out.println(rs);//3.格式化时间,还有另一种方案String rs2 = now.format(formatter); //反向格式化System.out.println(rs2);//4.解析时间:解析时间一般使用LocalDateTime提供的解析方法来解析String dateStr = "2029年12月12日 12:12:11";LocalDateTime ldt = LocalDateTime.parse(dateStr,formatter);System.out.println(ldt);}
}
运行结果:
JDK 8 新增的有关时间的API还有两个补充的:Period、Duration。
Period
- 可以用于计算两个LocalDate对象相差的年数、月数、天数。
常见方法
方法名 | 说明 |
---|---|
public static Period between(LocalDate start, LocalDate end) | 传入2个日期对象,得到Period对象 |
public int getYears() | 计算隔几年,并返回 |
public int getMonths() | 计算隔几个月,年返回 |
public int getDays() | 计算隔多少天,并返回 |
用法示例
public class Test {public static void main(String[] args){LocalDate start = LocalDate.of(2029,8,10);LocalDate end = LocalDate.of(2029,12,15);//1.创建Period对象,封装两个日期对象Period period = Period.between(start,end);//2.通过Period对象获取两个日期对象相差的信息System.out.println(period.getYears());System.out.println(period.getMonths());System.out.println(period.getDays());}
}
运行结果:
Duration
- 可以用于计算两个时间对象相差的天数、小时数、分数、秒数、纳秒数;支持LocalTime、LocalDateTime、Instant等时间。
常见方法
方法名 | 说明 |
---|---|
publicstaticDuration between(开始时间对象1,截止时间对象2) | 传入2个时间对象,得到Duration对象 |
public long toDays() | 计算隔多少天,并返回 |
public long toHours() | 计算隔多少小时,并返回 |
public long toMinutes() | 计算隔多少分,并返回 |
public long toSeconds() | 计算隔多少秒,并返回 |
public long toMillis() | 计算隔多少毫秒,并返回 |
public long toNanos() | 计算隔多少纳秒,并返回 |
用法示例
public class Test {public static void main(String[] args){LocalDateTime start = LocalDateTime.of(2025,11,11,11,10,10);LocalDateTime end = LocalDateTime.of(2025,11,11,11,11,11);//1.得到Duration对象Duration duration = Duration.between(start,end);//2.获取两个时间对象间隔的信息System.out.println(duration.toDays()); //间隔多少天System.out.println(duration.toHours()); //间隔多少小时System.out.println(duration.toMinutes()); //间隔多少分钟System.out.println(duration.toSeconds()); //间隔多少秒System.out.println(duration.toMillis()); //间隔多少毫秒System.out.println(duration.toNanos()); //间隔多少纳秒}
}
运行结果:
关于旧版与新增的时间相关API就全部学完啦~
下一篇开始学习Arrays这个工具类!
END
学习自:黑马程序员——JavaSE课程