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

时间:2015-12-16 10:55:56

标签: java jodatime

  

在java中我想计算年龄..

我正在使用" jodatime.jar"

LocalDate today = LocalDate.now();
LocalDate birthdate = new LocalDate ("1990-12-12");
Years age = Years.yearsBetween(birthdate, today);

我希望年龄为integer ..此处返回的值类似于 P25Y ..如何获取年龄的整数值..我只想 25 < / p>

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

5 个答案:

答案 0 :(得分:5)

使用joda-time

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

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

使用java.time

如果您可以使用java.timeLocalDatePeriod使用Java 8或更高版本,那么可以这样实现:

        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");

输出

You are 25 years old

答案 1 :(得分:3)

使用age.getYears()获取int年龄值。

答案 2 :(得分:0)

您可以使用IF %ERRORLEVEL% NEQ 0 GOTO :eof。来自doc

  

获取此期间所代表的年数。

答案 3 :(得分:0)

msbuild不是age.getYears(),而是age。如果要将年龄检索为整数,请使用Integer方法:

Years

答案 4 :(得分:0)

如果你想继续使用jodattime,你应该知道,它有一种获取年份的方法:.getYears()

如果您只想获得年龄,请使用公历来获取年份并将其与当前年份进行比较:

Calendar date = new GregorianCalendar(2012, 9, 5);
int birthyear = date.get(Calendar.YEAR); // 2012
Date currdate = new Date();
Calendar date2 = new GregorianCalendar();
date2.setTime(currdate);
int curryear = date.2get(Calendar.YEAR); // current year(2015 atm)