Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类

  由于Jdk7及之前的日期时间类的不方便使用问题线程安全问题等问题,2005年,Stephen Colebourne建立了Joda-Time库,做为替代的日期和时间API。Stephen向JCP提交了一个规范,他本人做为规范的领导人,该规范就是JSR 310,在Java8中实现并发布。html

1.Java8日期、时间API包介绍

  • java.time包:这是新的Java日期/时间API的基础包,全部的主要基础类都是这个包的一部分,如:LocalDate, LocalTime, LocalDateTime, Instant, Period, Duration等等。全部这些类都是不可变的和线程安全的,在绝大多数状况下,这些类可以有效地处理一些公共的需求。
  • java.time.chrono包:这个包为非ISO的日历系统定义了一些泛化的API,咱们能够扩展AbstractChronology类来建立本身的日历系统。
  • java.time.format包:这个包包含可以格式化和解析日期时间对象的类,在绝大多数状况下,咱们不该该直接使用它们,由于java.time包中相应的类已经提供了格式化和解析的方法。
  • java.time.temporal包:这个包包含一些时态对象,咱们能够用其找出关于日期/时间对象的某个特定日期或时间,好比说,能够找到某月的第一天或最后一天。你能够很是容易地认出这些方法,由于它们都具备“withXXX”的格式。
  • java.time.zone包:这个包包含支持不一样时区以及相关规则的类

 

2.Java8日期时间API主要类有:

LocalDate:表示不带时间的日期
LocalTime:表示不带日期的时间
LocalDateTime:日期和时间类
ZoneId:时区
ZonedDateTime:一个带时区的完整时间
Instant:Unix 时间,它表明的是时间戳,好比 2018-01-14T02:20:13.592Z
Clock:获取某个时区下当前的瞬时时间,日期或者时间
Duration:表示一个绝对的精确跨度,使用毫秒为单位
Period:这个类表示与 Duration 相同的概念,可是以人们比较熟悉的单位表示,好比年、月、周
DateTimeFormatter:格式化输出
TemporalAdjusters:得到指定日期时间等,如当月的第一天、今年的最后一天等java

ChronoUnit:时间单位枚举,用于加减操做segmentfault

ChronoField:字段枚举,用于设置字段值。安全

主要类图:并发

 

 时间范围示意图:.net

 

 

参考:https://www.iteye.com/news/26064线程

  https://segmentfault.com/a/1190000020179839orm

  《Java8实战》htm

  https://blog.csdn.net/wangsun300/article/details/103403490对象

相关文章
相关标签/搜索