我有下面的代码来获得两年之间的差额..
long yearsBetween = ChronoUnit.YEARS.between(
customDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(),
LocalDate.now());我的日期值如下
customDate = 2022-03-07
LocalDate.now() = 2021-10-07但是当我执行ChronoUnit.YEARS.between时,它返回"0",但我希望返回值是"1"。我只想比较给定日期的年份,并得到不包括天数的差值。
发布于 2021-10-07 04:18:15
如果您想忽略LocalDate的月份和日期部分,您可以只从每个LocalDate中获取年份,然后进行比较,如下所示:
// Let's say we have two LocalDates, date1 and date2:
LocalDate date1 = LocalDate.of(2021, 10, 6);
LocalDate date2 = LocalDate.of(2022, 3, 7);
// We can get the year for each object and then subtract the two years:
long yearsBetween = date2.getYear() - date1.getYear();
// This will print 1 because 2022 is 1 year ahead of 2021:
System.out.println(yearsBetween);顺便说一下,yearsBetween不需要是长整型数据类型(64位整数)。getYear()方法返回一个整数(32位整数),我怀疑您在将来是否需要处理这么远的年份。我们可以只使用:
int yearsBetween = date2.getYear() - date1.getYear();然后,您只需在date1和date2类似的位置插入日期即可:
int yearsBetween = customDate.toInstant().atZone(ZoneId.systemDefault())
.toLocalDate().getYear()
- LocalDate.now().getYear();https://stackoverflow.com/questions/69475265
复制相似问题