如何获得两个java.util.Date
之间的年数?
注意:仅使用java.util.Date
答案 0 :(得分:9)
您需要多准确?如果近似值足够好,那么我会做
long msDiff = date1.getTime() - date2.getTime();
int yearDiff = (int)(msDiff / 1000 / 60 / 60 / 24 / 365.25);
答案 1 :(得分:1)
您真的需要使用 java.util.Date ??
如果您放宽此约束并允许使用 Joda Time - Java date and time API ,您可以完成以下任务:
import org.joda.time.DateTime;
import org.joda.time.Period;
import static java.lang.System.out;
public class App {
public static void main(String[] args) {
final DateTime now = new DateTime();
out.println(new Period(now.minusYears(2), now).getYears());
out.println(new Period(now.minusYears(2).plusHours(1), now).getYears());
}
}
输出结果为:
2
1
如果您无法使用Joda Time,请使用 java.util.Calendar 。
答案 2 :(得分:0)
对每个Date对象使用getTime方法并执行减法操作。将结果转换为年。
答案 3 :(得分:0)
我假设,因为这个问题是在GWT下标记的,所以你试图在a中进行日期数学运算 GWT应用程序。 GWT的仿真库实现了不推荐使用的函数Date.getYear(),在这种情况下你可以只使用date2.getYear() - date1.getYear()。
使用已弃用的函数并不是最好的,但在GWT开发世界中似乎是常见的做法。