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

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:获得指定日期时间等,如当月的第一天、今年的最后一天等

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

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

主要类图:

时间范围示意图:

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

  https://segmentfault.com/a/1190000020179839

  《Java8实战》

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

最新文章

  1. Linux 关机命令
  2. 比较好用的php函数
  3. javascript 三个 对话框
  4. diff和patch配合使用(转载备用)
  5. jQuery中的height()、innerheight()、outerheight()的区别总结
  6. java理论基础学习二
  7. 安装db2 提示不是有效的win32应用程序?
  8. asterisk webrtc使用SIPML5初体验
  9. C#的DLL注册为COM,Delphi来调用
  10. Asp.net的对Excel文档的导入导出操作
  11. 【甘道夫】官方网站MapReduce代码注释具体实例
  12. iOS开发--XMPPFramework--环境的配置(一)
  13. Windows 7 设置,启动,停止本地虚拟WLAN
  14. 章节二、4-String以及StringBuffer和StringBuilder的对比
  15. LINUX PID 1 和 SYSTEMD
  16. Centos升级安装.Net core 1.1
  17. Feed back TFS 2017 RC upgrade status to product team in product group 2017.03.01
  18. leetcode个人题解——#39 Combination Sum
  19. ECharts使用(1)(转载)
  20. powershell常用操作

热门文章

  1. python基础知识第六篇(知识点总结)
  2. 深度强化学习(DQN-Deep Q Network)之应用-Flappy Bird
  3. 全平台轻量开源verilog仿真工具iverilog+GTKWave使用教程
  4. Cesium专栏-雷达遮罩动态扫描(附源码下载)
  5. harbor部署之SSL
  6. C#开发微信小程序(四)
  7. 爬b站视频直链
  8. vue/cli新旧版本安装方式
  9. java中线程的几种实现方式
  10. 5.java基础之static、类加载过程