Java 旧时间日期API的问题
在 Java8 之前,Java 自带的时间 API 有以下问题:
java.util.Date和java.util.Calendar类易用性差,不支持时区,而且他们都不是线程安全的;DateFormat被放在java.text包中,它是一个抽象类,所以我们需要实例化一个SimpleDateFormat对象来处理日期格式化,并且DateFormat也是非线程安全,这意味着如果你在多线程程序中调用同一个DateFormat对象,会得到意想不到的结果。Calendar中获取的月份需要加一才能表示当前月份。Java8 time 主要对象
Java 8 引入了 java.time 包新的日期时间API,新的日期API是 JSR-310 规范的实现,Joda-Time 框架的作者正是 JSR-310 的规范的倡导者,所以能从 Java 8 的日期 API 中看到很多 Joda-Time 的特性。以下是主要的新API:
Java8 time API 与旧时间API 的比较
