有大量 SO 问题涉及计算 Java 中两个日期或两次之间的差异。许多答案指出了核心 Java Date 类的问题,并建议使用 Jodatime,但是据我所知,没有人建议如何使用 jsr310 来做到这一点。
那么jsr310中有没有计算两个日期或者两次时间的差值的方法呢?
作为引用,以下问题处理此问题:
在核心 Java 中:
在 Jodatime 中:
最佳答案
回答最终的 JDK1.8 版本。
有两个量级 - Duration
和 Period
。 Duration 是基于时间的 (nano),Period 是基于日期的(年/月/日)。
相同类型的两个时间对象之间的时间量可以通过以下两种方式之一轻松计算(我更喜欢第一种):
long days = ChronoUnit.DAYS.between(start, end);
long days = start.until(end, ChronoUnit.DAYS);
相同类型的两个时间对象之间的Duration
可以计算如下:
Duration d = Duration.between(start, end);
两个LocalDate
对象之间的Period
可以计算如下:
Period p = Period.between(start, end);
关于Java jsr310 : difference between dates and times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11187639/