接下来继续要学习的是JDK 8之后新增的代替SimpleDateFormat的一个API——DateTimeFormatter
同样是用来格式化和解析时间的,与SimpleDateFormat相比较来说,它是线程安全的,也就是多个用户进入到一个系统中,用户可以使用同一个DateTimeFormatter。
DateTimeFormatter
主要方法
方法名 | 说明 |
public static DateTimeFormatter ofPattern(时间格式) | 获取格式化器对象 |
public String format(时间对象) | 格式化时间 |
LocalDateTime提供的格式化、解析时间的方法
用法示例
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 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等时间。
常见方法
用法示例
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