获取 ISO8601 中日期的年数

Get number of years with a date in ISO8601

我正在尝试获取自日期以来的年数,其中提供了“2013-12-06”格式的字符串。我想将它与今天 (2020-21-06) 进行比较,并得到我可以输入 int 的年数。

例如,我收到

String d = "2013-12-06"

今天的日期是 2020/21/06。

如何计算两者之间的年差?

在本例中为 6 年。

非常感谢!

java.time.Year

import java.time.Year;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;

public class Main {
    public static void main(String[] args) {
        Year year = Year.parse("2013-12-06", DateTimeFormatter.ISO_DATE);
        long years = year.until(Year.now(), ChronoUnit.YEARS);

        System.out.println(years);
    }
}

输出:

7
import java.time.LocalDate;
import java.lang.Math;
import java.lang.Integer;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        LocalDate now = LocalDate.now();
        String nowTime = now.toString();
        String d = "2013-12-06";
        String year = d.substring(0, 4);
        String NowYear = nowTime.substring(0, 4);
        int yearInt = Integer.parseInt(year);
        int NowYearInt = Integer.parseInt(NowYear);
        
        int diff = NowYearInt - yearInt;
        System.out.println(diff);
    }

}

老式的方式。打印 7。如果年份是 1000 - 2020,则有效。