仅在减去天数之间的周期

时间:2014-06-18 15:12:23

标签: java datetime-format period

变量dateSubtract出现在16但是我想找到两天之间的总天数,应该是165天。我怎么能这样做没有时间

String date = "06/17/2014";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
LocalDate d1 = LocalDate.parse("01/01/2014", formatter);
LocalDate d2 = LocalDate.parse(date, formatter);
int dateSubtract = Period.between(d1, d2).getDays();

3 个答案:

答案 0 :(得分:7)

Period是日,月,年的组合。所以在你的情况下,期限是5个月和16天。它在javadoc中进行了解释,但如果你随便读它就不一定非常清楚。

天数单位不会自动标准化为月份和年份单位。这意味着“45天”的时段与“1个月和15天”的时段不同,getDays()将分别返回45和15。

要获取两个日期之间的总天数,您可以使用:

//including d1, excluding d2:
ChronoUnit.DAYS.between(d1, d2);
//or, to exclude d1 AND d2, one of these:
ChronoUnit.DAYS.between(d1.plusDays(1), d2);
ChronoUnit.DAYS.between(d1, d2) - 1;

答案 1 :(得分:0)

没有JODA时间:

SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");
Date dateStart = null;
Date dateEnd = null;

try {
    dateStart = format.parse("01/01/2014");
    dateEnd = format.parse("06/17/2014");

    long diffTime = dateEnd.getTime() - dateStart.getTime();

    long diffDays = diffTime / (24 * 60 * 60 * 1000);

} catch (Exception e) {
    e.printStackTrace();
}

答案 2 :(得分:0)

时间段以年,月和日为单位来模拟数量或时间量, 例如2 years, 3 months and 4 days

要计算两个日期之间的天数,请使用ChronoUnit.DAYS.between

long days = ChronoUnit.DAYS.between(LocalDate.of(2020,4,1), LocalDate.now());