日历.Add返回奇怪的日期



我试图简单地添加一个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]

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);

我真的不明白这个行为-但它工作。

尝试使用这个添加(日历)。

最新更新