JodaTime round持续时间/期间到最接近的分钟/小时/天/周/月/年

时间:2016-01-15 17:49:01

标签: java rounding jodatime

如果我在JodaTime中有两个时刻,例如

DateTime then=new DateTime(0);
DateTime now=DateTime.now();

我希望得到这两个日期之间的年数,我可以做到

new Period(then,now).getYears();

Years.yearsBetween(then,now);

但问题是如果间隔不是确切的年数,这两种方法都将返回年数的下限。因此,例如,你有两个相隔两年零11个月的瞬间,它仍会返回" 0"年份。

JodaTime是否有任何方式可以获得数年,数月等数字?

这样做的目的是希望以人性化的格式显示持续时间,例如

1 year, 11 months, 30 days, 1 hour -> 2 years.
6 days 4 hours 1 minute -> 1 week
4 hours 18 minutes 5 seconds -> 4 hours

因此,我希望显示适当的舍入数量。

我想我可以检查一下这个区间的末尾是否接近N个单位或N + 1个单位,但是有更好的方法吗?

0 个答案:

没有答案