java.util.Date类缺陷

在Java8之前,所有关于时间和日期的API都存在各种使用方面的缺陷,主要有:

  • Java的java.util.Date和java.util.Calendar类易用性差,不支持时区,而且他们都不是线程安全的;
  • 用于格式化日期的类DateFormat被放在java.text包中,它是一个抽象类,所以我们需要实例化一个SimpleDateFormat对象来处理日期格式化,并且DateFormat也是非线程安全,这意味着如果你在多线程程序中调用同一个DateFormat对象,会得到意想不到的结果。
  • 对日期的计算方式繁琐,而且容易出错,因为月份是从0开始的,从Calendar中获取的月份需要加一才能表示当前月份。

JAVA8日期及时间API

  • LocalDate:该类的实例是一个不可变对象,它只提供了简单的日期,并不含当天的时间信息,也不附带任何与时区相关的信息
  • LocalDate
  • LocalTime
  • LocalDateTime
  • ZonedDateTime:时区时间
  • Instant
  • Duration:主要用于以秒和纳秒衡量时间的长短
  • Period
  • Temporal接口定义了如何读取和操纵为时间建模的对象的值
  • TemporalField
  • DateTimeFormatter:时间格式化工具类

results matching ""

    No results matching ""