Joda-Time Period 间隔
2018-11-12 本文已影响43人
ba2cb747365a
一、背景:
在开发软件项目过程中,有时会碰上跟时间相关这样那样的需求。其中,判断某个对象如果超出时间则进行处理就是其中的一个例子。比如RPC请求对象如果超时2秒钟如果没有收到返回,则需要对请求对象进行清理。我们一般会使用System.currentTimeMillis() 跟当前时间毫秒值相减来判断。那么通过Joda-Time,我们可以用一种更优雅的方式来做。
一、核心类
1.1 Interval
Interval是不可变时间间隔的一个实现
1.2 Period
一个不可变的时间周期,可以有不同的周期单位,比如毫秒、秒、分钟、小时、天、月、年
(与interval的区别在于period可以计算出不同时间单位的间隔)
1.3 PeriodType
时间周期类型,支持毫秒、秒、分钟、小时、天、月、年
二、示例
2.1 判断两个时间点之前的间隔
可以看到,通过两个毫秒值可以得到Interval,然后Interval可以转换为Period,但是转换为什么类型,就只能获取什么类型的间隔了。上图中我们转换成了毫秒值,那么只有毫秒值才能被获取到。
通过上图中的例子,我们可以知道如何来判断是否超时,只需要记录两个时间点,然后转换为时间周期,进行数值判断就好了。