高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)

高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)

大家好,我是小虚竹。之前有粉丝私聊我,问能不能把JAVA8 新的日期时间API(JSR-310)知识点梳理出来。答案是肯定的,谁让我宠粉呢。由于内容偏多(超十万字了),会拆成多篇来写。


闲话就聊到这,请看下面的正文。


文章目录

常用于计算的类介绍

Duration

Duration类说明

Duration常用的用法

创建Duration对象

访问Duration的时间

Duration计算

Period

Period类说明

Period常用的用法

创建Period对象

访问Period的时间

Duration计算

TemporalUnit

TemporalUnit类说明

ChronoUnit常用的用法

TemporalField

TemporalField类说明

ChronoField常用的用法

ValueRange

ValueRange类说明

ValueRange常用的用法

Chronology 判断是否闰年

实战

比较日期时间的先后

比较-LocalDate

比较-LocalTime

比较-OffsetDateTime

比较-OffsetTime

比较-ZonedDateTime

计算日期时间的间隔

推荐相关文章

hutool日期时间系列文章

其他

常用于计算的类介绍

介绍下java8 中提供了几个常用于计算的类:


Duration:表示秒和纳秒的时间量

Period:表示年月日的时间量

TemporalUnit:日期时间的基本单位

TemporalField:日期时间的属性

ValueRange:表示取值范围

Duration

Duration类说明

包路径:java.time.Duration

高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)这段代码用了两个条件,这两个条件都符合,才是闰年。


(prolepticYear & 3) == 0

(prolepticYear % 100) != 0 || (prolepticYear % 400) == 0

(prolepticYear & 3) == 0 用了与运算符“&”,其使用规律如下:

两个操作数中位都为1,结果才为1,否则结果为0。


3 的二进制是011 ,prolepticYear & 3 目的是保留最后2位二进制数,然后判断是否最后两位二进制数等于0。如果等于0,证明能被4整除。闰年一定要满足是4的倍数的条件;


(prolepticYear % 100) != 0 || (prolepticYear % 400) == 0 这个就比较好理解了,看是不是100的倍数或者是不是400 倍数。


而且小虚竹发现java.time.Year#isLeap() 用的实现代码逻辑是一样的高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)计算日期时间的间隔

Duration 和**Period ** 都有 **between ** 方法


这个就不在重复说了,上面Duration 和Period 的常用用法里有介绍到。


推荐相关文章

hutool日期时间系列文章

1DateUtil(时间工具类)-当前时间和当前时间戳


2DateUtil(时间工具类)-常用的时间类型Date,DateTime,Calendar和TemporalAccessor(LocalDateTime)转换


3DateUtil(时间工具类)-获取日期的各种内容


4DateUtil(时间工具类)-格式化时间


5DateUtil(时间工具类)-解析被格式化的时间


6DateUtil(时间工具类)-时间偏移量获取


7DateUtil(时间工具类)-日期计算


8ChineseDate(农历日期工具类)


9LocalDateTimeUtil(JDK8+中的{@link LocalDateTime} 工具类封装)


10TemporalAccessorUtil{@link TemporalAccessor} 工具类封装


其他

要探索JDK的核心底层源码,那必须掌握native用法


万字博文教你搞懂java源码的日期和时间相关用法


java的SimpleDateFormat线程不安全出问题了,虚竹教你多种解决方案


源码分析:JDK获取默认时区的风险和最佳实践


高级JAVA开发必备技能:时区的规则发生变化时,如何同步JDK的时区规则高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)



上一篇:《on Java 中文版》读后感(《JAVA编程思想》的原作者)(JAVA 小虚竹)


下一篇:高级JAVA开发必备技能:java8 JSR-310判断是否闰年实现,发现原作者的代码可能有问题(JAVA 小虚竹)