Java 8 之 Time

Java 8 出来好久了,但是好多人还不太会用它的新特性,那我们今天来讲一讲Java 8的Time

为什么要使用Java 8 Time呢?

Java之前的Date类太老了,日历类又不方便,很多人在项目中总喜欢在util包下建一个DateUtil,里面放一些辟如比较2个时间的前后啊,获取下一个月的第一天时间等等的方法,有些公司的中间件团队也会整理一下大而全的DateUtil供整个公司使用,但是有了Java 8 的Time后,我们就可以对DateUtil说拜拜了

话说JodaTime是Java 8 Time的前身

Java 8的时间类主要在java.time包下面,主要会使用到的类有

  • LocalDateTime
  • LocalDate
  • LocalTime
  • ZonedDateTime

LocalDate代表的是本地日期,例如2019-11-11

LocalTime代表的是本地的时间,例如11:11:11

LocalDateTime = LocalDate + LocalTime,例如2019-11-11T11:11:11(默认的时间格式就是ISO-8601) 其实源码里LocalDateTime类里就是保持了这2个对象

这四个类里,Local打头的都是不带时区的,只有ZonedDateTime带时区的

ZonedDateTime zonedDateTime = LocalDateTime.now().atZone(ZoneId.systemDefault());
zonedDateTime.toLocalDate();
zonedDateTime.toLocalDateTime();
zonedDateTime.toLocalTime();

我们可以通过LocalDateTime + 一个时区转换到ZonedDateTime,如上面第一行所示

也可以通过ZonedDateTime直接转换到LocalDateTime

未完待续!!!

你可能感兴趣的:(Java 8 之 Time)