Из документации Date#getYear()
:
Возвращает значение, являющееся результатом вычитания 1900 из года, который содержит или начинается с момента времени, представленного этим объектом Date, как интерпретируетсяв местном часовом поясе.
Так что вам нужно будет добавить 1900
, чтобы получить правильный год (Рядом с недостатком @BorisTheSpider, указанным в его комментарии).Но есть и лучший способ, используя новый java.time
API, который заменяет старый Date
API:
LocalDate d = LocalDate.now();
for (int i = 0; i <= 5; i++) {
System.out.println(d.getYear());
d = d.minusYears(1);
}
Который печатает:
2019
2018
2017
2016
2015
2014