概述
Java 8之前的日期类Date,及字符串、日期的解析类SimpleDateFormatter存在线程不安全,难使用的问题,为此Java 8新增了日期类LocalDateTime、LocalDate、LocalTime,解决这些问题,而且这些新增的类超级好使用,我们一起来看看它的使用吧
新类解析
在LocalDateTime、LocalDate、LocalTime类中,提供了很多好用的方法
做个总结吧:
getXXX–获取XX,比如getMonth
withXXX–指定XXX,不返回相应的对象,在原有对象上加
withYear–指定年
plusXXX–加上XXX
plusYear–加上年
minusXXX–减去XXX
plusYear–减去年
toXXX()将对象转换为相关类型
atXXX()从带有附加信息的现有datetime对象创建一个新的datetime对象
parse–解析字符串为日期
日期的格式化使用
LocalDateTime、LocalDate、LocalTime都提供了对字符串的解析,但是要注意一点的是,LocalDateTime类型需要指定为yyyy-MM-dd HH:mm:ss相关类型,LocalDate、LocalTime也一样,如果指定格式不一样,就会报错,比如LocalDateTime指定类型为yyyy-MM-dd就会报错
//将字符串解析为 LocalDate类
LocalDateTime localDateTime = LocalDateTime.parse("2020-10-10 14:01:05",DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDate date = LocalDate.parse("2020-10-10", DateTimeFormatter.ISO_DATE);
LocalTime time = LocalTime.parse("14:01:05");
System.out.println(localDateTime);
System.out.println(date);
System.out.println(time);