【发布时间】:2010-11-10 02:37:15
【问题描述】:
我想在 Java 方法中以 int 形式返回年龄。 我现在拥有的是以下内容,其中 getBirthDate() 返回一个 Date 对象(带有出生日期;-)):
public int getAge() {
long ageInMillis = new Date().getTime() - getBirthDate().getTime();
Date age = new Date(ageInMillis);
return age.getYear();
}
但是由于 getYear() 已被弃用,我想知道是否有更好的方法来做到这一点?我什至不确定这是否能正常工作,因为我还没有进行单元测试。
【问题讨论】:
-
改变了我的想法:另一个问题只有日期之间的近似年份,而不是真正正确的年龄。
-
鉴于他返回的是一个 int,你能澄清一下你所说的“正确”年龄是什么意思吗?
-
日期与日历是一个基本概念,可以从阅读 Java 文档中收集到。我不明白为什么这会受到如此多的赞成。
-
@demongolem ???日期和日历很容易理解?!一点都不。在 Stack Overflow 上有无数关于这个主题的问题。 Joda-Time 项目产生了最受欢迎的库之一,以替代那些麻烦的日期时间类。后来,Sun、Oracle 和 JCP 社区接受了JSR 310 (java.time),承认遗留类的不足是无可救药的。有关详细信息,请参阅Tutorial by Oracle。