当试图获取下个月的最后日期时,获取明年的下个月的最后日期

Sha*_*ond -1 java datetime java-date

尝试运行此代码,直到一切正常为止,OCT但是NOV就像 firstdate 2019-12-01 & lastdate 2020-12-31

public class Test1 {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();         
        calendar.add(Calendar.MONTH, 1);
        String date;    
        calendar.set(Calendar.DATE,calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
        Date nextMonthFirstDay = calendar.getTime();
        date=new SimpleDateFormat("YYYY-MM-dd").format(nextMonthFirstDay).toLowerCase();
        System.out.println("firstdate "+ date);

        calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
        Date nextMonthLastDay = calendar.getTime();
        date=new SimpleDateFormat("YYYY-MM-dd").format(nextMonthLastDay).toLowerCase();
        System.out.println("lastdate  "+date);

    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样显示。是Java中的错误还是bug?

www*_*com 8

将日期格式更改为yyyy-MM-dd (注意,年份的小写字母)

它们都代表一年,但是yyyy代表日历年,而YYYY代表星期。

所以像...

date=new SimpleDateFormat("yyyy-MM-dd").format(nextMonthLastDay).toLowerCase();

Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!