在java age计算中返回错误的值

Sal*_*ini 2 java jodatime

在java中我想计算年龄..

我正在使用"jodatime.jar"

LocalDate today = LocalDate.now();
LocalDate birthdate = new LocalDate ("1990-12-12");
Years age = Years.yearsBetween(birthdate, today);
Run Code Online (Sandbox Code Playgroud)

我希望年龄为integer......它像P25Y那样返回值.如何得到年龄的整数值......我只想要25岁

有没有其他方法来获得日期格式的java年龄..在谷歌我已经尝试了很多,但没有找到任何使用日期格式的正确示例

Pri*_*nce 5

使用joda-time

您可以使用Periodjoda timeapi中实现此功能.尝试这样的事情:

Period period = new Period(d1, d2);// d1,d2 are Date objects
System.out.print("You are " + period.getYears() + " years old");
Run Code Online (Sandbox Code Playgroud)

使用java.time

如果你可以使用java.timeLocalDate和Java 8或更高版本Period,那么它可以这样实现:

        LocalDate today = LocalDate.now();
        LocalDate birthday = LocalDate.of(1990, Month.DECEMBER, 12);

        Period p = Period.between(birthday, today);
        System.out.println("You are " + p.getYears() + " years old");
Run Code Online (Sandbox Code Playgroud)

产量

You are 25 years old
Run Code Online (Sandbox Code Playgroud)