我试图通过使用:
简单地在当前日期添加一个n号码Calendar calendar = Calendar.getInstance(); // today 12.05.2014
calendar.add(Calendar.DAY_OF_MONTH, 2); // expected 14.05.2014 --> returns 01.06.2014
不幸的是它没有返回预期的日期。
使用calendar.add(Calendar.DAY_OF_MONTH, 0);
返回当前日期。现在我完全糊涂了。我监督过什么吗?
这是我的日志:
java.util.GregorianCalendar[time=1401469591003,areFieldsSet=true,lenient=true,
zone=Europe/Berlin,firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,
**YEAR=2014,**
**MONTH=4,**
WEEK_OF_YEAR=22,
WEEK_OF_MONTH=5,
**DAY_OF_MONTH=30,** // I would initially expect 12
DAY_OF_YEAR=150,
DAY_OF_WEEK=6,
DAY_OF_WEEK_IN_MONTH=5,
AM_PM=1,HOUR=7,HOUR_OF_DAY=19,MINUTE=6,SECOND=31,MILLISECOND=3,ZONE_OFFSET=3600000,DST_OFFSET=3600000]
添加2后
java.util.GregorianCalendar[time=1401642391003,areFieldsSet=true,lenient=true,
zone=Europe/Berlin,firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,
**YEAR=2014,**
**MONTH=5,**
WEEK_OF_YEAR=22,
WEEK_OF_MONTH=1,
**DAY_OF_MONTH=1,**
DAY_OF_YEAR=152,
DAY_OF_WEEK=1,
DAY_OF_WEEK_IN_MONTH=1,
AM_PM=1,HOUR=7,HOUR_OF_DAY=19,MINUTE=6,SECOND=31,MILLISECOND=3,ZONE_OFFSET=3600000,DST_OFFSET=3600000]
更新
发现了错误的错误: 当我通过以下方式创建日历对象时:
Calendar calendar = Calendar.getInstance();
我想在for语句中多次添加(add())一个新日期。
Calendar calendar = Calendar.getInstance();
for (int i = 0; i < 100; i++) {
calendar.add(Calendar.DATE, i);
在这个陈述中,我添加了一个新的日期(calendar.add(i)),但是没有用。在for语句中移动构造函数后,所有计算现在都是正确的。
for (int i = 0; i < 100; i++) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, i);
我真的不明白这种行为 - 但它确实有用。
答案 0 :(得分:0)
尝试使用添加(Calendar.DATE,1);