首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Period.between仅减去天数

Period.between仅减去天数
EN

Stack Overflow用户
提问于 2014-06-18 15:12:23
回答 3查看 2.7K关注 0票数 2

变量dateSubtract为16,但我想找出这两天之间的总天数,应该是165天。没有JODA TIME,我怎么做这个

代码语言:javascript
复制
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();
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-18 15:21:18

Period是日、月、年的组合。所以在你的情况下,这段时间是5个月16天。它是在javadoc中解释的,尽管如果您随意阅读它,并不一定非常清楚。

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

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

代码语言:javascript
复制
//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;
票数 9
EN

Stack Overflow用户

发布于 2014-06-18 15:27:36

没有JODA的时间:

代码语言:javascript
复制
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();
}
票数 0
EN

Stack Overflow用户

发布于 2020-06-18 20:12:29

期间以年数、月份和天数(如2 years, 3 months and 4 days )来表示时间的数量或数量。

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

代码语言:javascript
复制
long days = ChronoUnit.DAYS.between(LocalDate.of(2020,4,1), LocalDate.now());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24289157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档