我想从出生日期计算年龄Date
。我已经尝试过这个似乎工作正常的代码,但它是最方便的方法吗?
LocalDate hoy = LocalDate.now();
LocalDate nacimiento = usuarioActivo.getFechaNacimiento().toInstant().
atZone(ZoneId.systemDefault()).toLocalDate();
long edad = ChronoUnit.YEARS.between(nacimiento, hoy);
用于日期和时间的 Java 8 API 非常棒。我用它,它是我的最爱。您可以像@Alejandro Rangel Celis 告诉您的那样使用 JODA,它与旧版本的 Java 兼容。
爪哇 8
您拥有它的方式是有效的,但并不完全正确,因为您没有考虑月份。为此,您可以使用Period类:
离开:
查看Joda,它简化了日期和时间计算(Joda 也是 Java 中新的日期/时间 API 标准的基础)。
Java 8 有一些非常相似的东西,值得一试。
例子
这是英文网站上的一个类似问题。
我开始用 NetBeans 11 编写 java 程序,我刚刚遇到了这个问题,我通过以下方式解决了它:(我希望它对你有用)