首页 > 解决方案 > Java Looping 年从现在到后面

问题描述

我尝试使用格式时间/日期进行循环,但我坚持使用它

所以我想循环一年,从现在(2019 年到 5 年前)。

Date d = new Date();
long tahun = d.getYear();
long hitung = tahun - 5;

for (long i = tahun; i >= hitung; i--) {
 d = new Date(tahun);
 d.getYear()
}

实际上我希望这样的输出:2019 2018 2017 2016 2015 2014

标签: javafor-loop

解决方案


从以下文档Date#getYear()

返回一个值,该值是从包含或开始于此 Date 对象表示的时间瞬间的年份减去 1900 的结果,如本地时区所解释的那样。

因此,您必须添加1900才能获得正确的年份(在@BorisTheSpider 在他的评论中指出的缺陷旁边)。但是有一个更好的方法,使用新的java.timeapi 替换旧的Dateapi:

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

推荐阅读