假设我有一个Employee模型,它的属性变量是startDate,而Promotion模型具有promotionDate。我想找出员工晋升之前已经工作了多长时间,为此我需要找到promotionDate和startDate之间的差异。如果我得到startDate为employee.getStartDate(),promotionDate为promotion.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 ");
谢谢。
Period.between(LocalDate.of(2015, Month.JANUARY, 1), LocalDate.of(2018, Month.APRIL, 3))
。该示例返回一个P3Y3M2D
的时间段,表示为3年3个月2天的时间段。链接到Period
类的文档。 - Ole V.V.