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

未完待续!!!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容