想要系统学习JAVA 推荐JAVA300集
Java300集零基础适合初学者视频教程←点击
java8的日期时间类
除了lambda表达式、Streams和一些小的改进之外,Java 8还引入了一组新的日期和时间api。
在本教程中,我们将通过几个简单的任务示例来学习如何使用Java 8 API。Java一直因其对日期、日历和时间的处理而受到批评,特别是它使Java .util. date可修改和SimpleDateFormat非线程安全的决定。
Java似乎已经意识到需要为时间和日期函数提供更好的支持,这对于已经习惯于使用Joda时间和日期库的社区来说也是一件好事。
这个新的日期和时间库的最大优点是它定义了与时间和日期相关的概念,如Instant、duration、日期、时间、时区和Period。它还借鉴了Joda库的一些优点,比如它能够分离人类和机器对时间和日期的理解。Java 8仍然使用ISO日历体系结构,并与它的前辈不同,使用Java中的类。时间包是不可变的和线程安全的。新的时间和日期API在java.time包中。以下是其中的一些关键类:
- Instant——它代表的是时间戳,可以理解为瞬时时间
- LocalDate——不包含具体时间的日期,比如2014-01-14。它可以用来存储生日,周年纪念日,入职日期等。
- LocalTime——它代表的是不含日期的时间
- LocalDateTime——它包含了日期及时间,不过还是没有偏移信息或者说时区。
- ZonedDateTime——这是一个包含时区的完整的日期时间,偏移量是以UTC/格林威治时间为基准的。
这个新库还添加了ZoneOffset和Zoned,它们为时区提供了更好的支持。使用新的DateTimeFormatter,日期解析和格式化有了新的面貌。



