使用Java8,新的日期时间API引入覆盖旧的日期时间API的以下缺点。
• 非线程安全:java.util.Date不是线程安全的,因此开发者必须在使用日期处理并发性问题。新的日期时间API是不可变的,并且没有setter方法。
• 设计不佳: 默认的开始日期从1900年,开始每月从1天从0开始,所以没有统一。不直接使用方法操作日期。新的API提供了这样操作实用方法。
• 困难的时区处理: 开发人员必须编写大量的代码来处理时区的问题。新的API设计开发保持特定领域设计。
JAVA8引入了java.time包 - 下一个新的日期时间API。以下是一些在java.time程序包引入重要的类。
• 本地 :简化日期时间API,没有时间处理区的复杂性。
• 时区 :专业的日期时间API来处理各种时区。
SN |
使用描述方法 |
---|---|
1 |
本地日期时间API LocalDate/本地时间和LocalDateTime类简化时区不需要开发。 |
2 |
时区日期时间API 时区日期时间API使用的时区是需要考虑的。 |
3 |
计时单位枚举 java.time.temporal.ChronoUnit枚举在Java8添加,以取代旧的API用来代表日,月等整数值。 |
4 |
周期和持续时间 这些类引入到处理时间的差异。 |
5 |
时间调节器 TemporalAdjuster是做数学日期。例如,要获得“本月第二个星期六”或“下周二”。 |
6 |
向后兼容性 toInstant()方法被添加到可用于将它们转换到新的日期时间的API原始日期和日历对象。 |