小编use*_*183的帖子

Java Calendar.add 给出错误的年份

我的程序获取当前日期,然后在循环中向该日期添加一周并打印出新日期。就像是:

Calendar cal = Calendar.getInstance();
for (int i=0; i < 52; i++) {
cal.add(Calendar.DATE, 7);
// print date out
}
Run Code Online (Sandbox Code Playgroud)

add 方法按照我预期的方式工作,直到它到达 12 月 30 日,此时年份从 2012 年跃升至 2013 年。

因此,使用今天 2012 年 4 月 16 日的日期,我测试了一些不同的输入:

this - cal.add(Calendar.DATE, 38*7);
yields- "date:1/7/2013"
this - cal.add(Calendar.DATE, 37*7);
yields- "date:12/31/2013"
this - cal.add(Calendar.DATE, 37*7-1);
yields- "date:12/30/2013"
this - cal.add(Calendar.DATE, 37*7-2);
yields- "date:12/29/2012"
Run Code Online (Sandbox Code Playgroud)

所以我注意到这一年在 12 月 30 日和 12 月 31 日之前都是正确的,然后当它回到 1 月时又会自我更正。有没有理由这样做?这与 2012 年是闰年有什么关系,还是我误解了 add 方法

java calendar

6
推荐指数
2
解决办法
1714
查看次数

标签 统计

calendar ×1

java ×1