当前位置: 首页 > 知识库问答 >
问题:

在Java中,如何找出年、月和日这两个日期之间的差异?[副本]

花和宜
2023-03-14

假设我有:Employee模型,它的属性变量是startDate,促销模型的属性变量是promotionDate。我想知道员工升职前工作了多长时间,我必须找出升职日期和开始日期之间的差异。如果我是员工的话。getStartDate()和promotionDate作为促销。getPromotionDate,如何查找任何日期的年、月和日的差异,

任何帮助都将不胜感激。

更新:我解决了以下问题

String startDate = "2018-01-01";
String promotionDate = "2019-11-08";

LocalDate sdate = LocalDate.parse(startDate);
LocalDate pdate = LocalDate.parse(promotionDate);

LocalDate ssdate = LocalDate.of(sdate.getYear(), sdate.getMonth(), sdate.getDayOfMonth());
LocalDate ppdate = LocalDate.of(pdate.getYear(), pdate.getMonth(), pdate.getDayOfMonth());

Period period = Period.between(ssdate, ppdate);
System.out.println("Difference: " + period.getYears() + " years " 
                                  + period.getMonths() + " months "
                                  + period.getDays() + " days ");

非常感谢。

共有1个答案

田意致
2023-03-14

使用LocalDate.of(int年,int月,int day OfMonth)从java8可以创建两个日期并找到差异:

LocalDate firstDate = LocalDate.of(2015, 1, 1);
LocalDate secondDate = LocalDate.of(2018, 3, 4);

Period period = Period.between(firstDate, secondDate);

Period具有等方法。getYears()。getMonths()等。

如果您有java.util.Date对象而不是int值2015,1,1,您可以将Date转换为LocalDate之前:

LocalDate startLocalDate = startDate.toInstant()
        .atZone(ZoneId.systemDefault())
        .toLocalDate();
 类似资料:
  • 我已经搜索了4个小时了,但是还没有找到一个用JavaScript计算两个日期(年、月和天)之间差异的解决方案,比如:2010年4月10日是3年、x月和y天之前。 有很多解决方案,但它们只提供了日、月或年的格式差异,或者它们不正确(意味着没有考虑一个月或闰年的实际天数,等等)。做那件事真的有那么难吗? 我看了一下: http://momentjs.com/->只能输出年、月或天的差异 http://

  • 我有开始日期和结束日期。这两个日期之间的持续时间应该是年、月和日的形式。我是新来的java。当我运行下面的方法时,我得到的结果是0年12个月1天。请建议一个替代方案,以获得年,月和天的准确差异。

  • 嗯,我在这里发现了很多这样的问题,试图获得年、月和日的两个日期之间的差异。。。但没有满足我要求的答案。 所以我写了一些计算的东西,它似乎是有效的,但也许这里的一些专家可以进行更正,或者帮助使这更简单。

  • 我想计算2个月之间的差异,我不想考虑一个月是30天,并且以毫秒的时间来转换它们,我不想使用像焦达这样的库,我也找到了一个使用LoalDead的解决方案,但是我使用的是java 7。我寻找我的问题的答案,但找不到任何答案,我尝试了许多方法,我尝试创建一个日历,并以毫秒为单位传递我的两个日期之间的差异,但如果我尝试获取15/04和15/5之间的差异,我将得到30天,而不是1个月,下面是代码 我可以用什

  • 如何获得之间的差异2日期在年,月和天使用moment.js?例如之间的差异4/5/2014

  • 问题内容: 如何计算JavaScript中两个Date()对象的差异,而只返回差异中的月数? 任何帮助将是巨大的:) 问题答案: “差异中的月数”的定义要经过很多解释。:-) 您可以从JavaScript日期对象获取年,月和日。根据您要查找的信息,可以使用这些信息来计算两个时间点之间有多少个月。 例如,现成的,它找出两个日期之间有多少 整月 ,而不计算部分月份(例如,不包括每个日期所在的月份):