变量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();
答案 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());