因为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

6 日期字符串转日期_Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类...相关推荐

  1. java 包结构 枚举类_Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类...

    因为Jdk7及以前的日期时间类的不方便使用问题和线程安全问题等问题,2005年,Stephen Colebourne创建了Joda-Time库,作为替代的日期和时间API.Stephen向JCP提交了 ...

  2. java 纳秒 格式化_Java日期时间API系列35-----Jdk8中java.time包中的新的日期时间API类应用,微秒和纳秒等更精确的时间格式化和解析。...

    通过Java日期时间API系列1-----Jdk7及以前的日期时间类中得知,Java8以前除了java.sql.Timestamp扩充纳秒,其他类最大只精确到毫秒:Java8 time包所有相关类都支 ...

  3. java 日期计算星座_Java日期时间API系列25-----Jdk8中java.time包中的新的日期时间API类,使用MonthDay计算十二星座。...

    packagecom.xkzhangsan.time.enums;import staticcom.xkzhangsan.time.constants.Constant.MONTHDAY_FORMAT ...

  4. java dayofweek_Java日期时间API系列22-----Jdk8中java.time包中的新的日期时间API类,Month月份和DayOfWeek星期的计算。...

    /*** 获取月, 比如 1 *@paramdate *@return */ public static intgetMonth(Date date){returnDateTimeConverterU ...

  5. R语言使用timeROC包计算无竞争情况下的生存资料多时间AUC值、R语言使用timeROC包的plotAUCcurve函数可视化多时间生存资料的不同标记物情况下对应的AUC曲线、并进行对比

    R语言使用timeROC包计算无竞争情况下的生存资料多时间AUC值.R语言使用timeROC包的plotAUCcurve函数可视化多时间生存资料的不同标记物情况下对应的AUC曲线.并进行对比 目录

  6. java调用包中的类_java调用另一个包中的类的方法

    java调用另一个包中的类的方法 发布时间:2020-05-18 15:04:40 来源:亿速云 阅读:199 作者:小新 今天小编给大家分享的是java调用另一个包中的类的方法,相信很多人都不太了解 ...

  7. d在java那个包中_处理日期的类在Java的哪个包中()A、java.utilB、java.ioC、java.langD...

    一般曳引机三点连接举升装置的液压缸是采用(). 在税控服务器管理系统中,以下描述错误的是() "去繁求简.去粗存精",是指什么变化表现方法() 当一个实际电压源(戴维宁电路)对外开 ...

  8. java date只保留年月日_Java日期时间API系列14-----Jdk8中日期API类,日期计算1,获取年月日时分秒等...

    通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析 ,可以看出java8设计非常好,实现接口Temporal, Tempora ...

  9. java date加一天_Java日期时间API系列15-----Jdk8中API类,java日期计算2,年月日时分秒的加减等...

    通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析 ,可以看出java8设计非常好,实现接口Temporal, Tempora ...

最新文章

  1. [LUOGU] 1090 合并果子
  2. Android开源框架——网络解析GSON
  3. 实例:ABAP权限对象设计与权限检查的实现
  4. Python面向对象之定制对象独有特征
  5. JSP简单练习-页面重定向
  6. Acwing202. 最幸运的数字
  7. 使用Unsafe真的是关于速度或功能吗?
  8. 【Pytorch神经网络实战案例】02 CIFAR-10数据集:Pytorch使用GPU训练CNN模版-方法②
  9. PHP笔记-获取客户端IP及平台及浏览器
  10. matlab绘制球面点,我需要在MATLAB的笛卡尔坐标中绘制球面方程的帮助
  11. Linux-Ubuntu下设置ufw防火墙
  12. snoopy php https_php使用snoopy与curl模拟登陆的实例分享
  13. android的Imageview的src和background
  14. WEB架构师成长之路 二
  15. 常见问题:为什么我的插件安装失败?
  16. Spring框架学习重点概要笔记(一)
  17. Mininet连接真实网络的实现
  18. beini奶瓶-无线网络蹭网破解-简明说明
  19. luogu P2706 巧克力
  20. ubuntu文件夹右键没有共享选项

热门文章

  1. 卡夫卡如何分区_通过分区在卡夫卡实现订单担保人
  2. jdbc时区_什么比日期和时区更难? SQL / JDBC中的日期和时区!
  3. primefaces_使用Bean验证扩展PrimeFaces CSV
  4. jboss默认进程名称_快速指南:剖析JBoss BPM跨进程通信
  5. rhq监控软件_RHQ指标的WildFly子系统
  6. junit:junit_JUnit ExpectedException规则:超越基础
  7. java8 默认方法_Java 8的默认方法:可以做什么和不能做什么?
  8. API网关正在经历身份危机
  9. 在5分钟内将Spring Boot作为Windows服务启动
  10. JDK 9已完成功能!