Java jsr310:日期和时间之间的差异

ama*_*ent 1 java datetime date jsr310

有很多SO问题涉及计算Java中两个日期或两个日期之间的差异.许多答案指出了核心Java Date类的问题,并建议使用Jodatime,但AFAIK,没有任何建议使用jsr310如何做到这一点.

那么,有什么方法可以在jsr310中计算两个日期或两个日期之间的差异吗?


作为参考,以下问题可以解决此问题:

在核心Java中:

在Jodatime:

Jod*_*hen 5

回答最终的JDK1.8版本.

有两个金额类 - DurationPeriod.持续时间是基于时间的(nanos),Period是基于日期的(年/月/日).

可以通过两种方式之一轻松计算相同类型的两个临时对象之间的时间量(我更喜欢第一种):

long days = ChronoUnit.DAYS.between(start, end);
long days = start.until(end, ChronoUnit.DAYS);
Run Code Online (Sandbox Code Playgroud)

Duration相同类型的两个之间的时间对象可以被计算如下:

Duration d = Duration.between(start, end);
Run Code Online (Sandbox Code Playgroud)

Period之间的两个LocalDate对象可被计算如下:

Period p = Period.between(start, end);
Run Code Online (Sandbox Code Playgroud)