java - 期间.仅减去天数

标签 java datetime-format java-time period

变量dateSubtract结果是 16,但我想找到这 2 天之间的总天数,应该是 165。没有 JODA TIME 我该如何做到这一点?

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();

最佳答案

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;

关于java - 期间.仅减去天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289157/

相关文章:

java - 使用指定的语言环境 (sv) 和 NumberFormat 将 String 解析为 Long

java - 将子类 List 转换为基类 List

java - 如何确保java类在应用程序启动时加载?

java - sql 格式 'YYYY-MM-DD HH24:MI:SS.FF' 到 java 的日期格式问题

spring - 无法转换 1985-04-12T23 :20 into java. util.Date

.net - 为什么 DateTime.ParseExact 不使用尾随 Z 解析 UTC 格式?

java - 根据 DST 转换存储在 DB 中的时间

java - 如何使用 LocalDateTime.parse(...) 解析 ISO 日期

java - 如何在关闭浏览器时从数据库中删除数据

android - LocalDateTime 未解析特定设备