This question already has answers here:
How to get previous month and years in java?
                                
                                    (8个答案)
                                
                        
                4年前关闭。
            
        

首先我设置月份和年份,然后我要上一个月份和年份而不是当前月份。现在我只知道该月的哪个月份

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class PrevMonth
{
    private static String prev_day_str;
    private static String prev_month_str;

    public static void main(String[] args)
    {
        SimpleDateFormat prev_day = new SimpleDateFormat("dd");
        Calendar calendar   = Calendar.getInstance();
        calendar.set(Calendar.MONTH, 1);
        calendar.set(Calendar.YEAR, 2015);

        calendar .add(Calendar.MONTH, -1);      //subtracting a month
        SimpleDateFormat prev_month = new SimpleDateFormat("MM");
        SimpleDateFormat prev_year = new SimpleDateFormat("YYYY");
        prev_day_str = prev_month.format(new Date(calendar .getTimeInMillis()));
        prev_month_str = prev_year.format(new Date(calendar .getTimeInMillis()));

        System.out.println(prev_day_str+" "+prev_month_str);
    }

}


结果:
2015年1月1日
2014年需要12

最佳答案

您的代码:

calendar.set(Calendar.MONTH, 1);


实际上将月份设置为2月。

对于一月份,您需要使用0,即。

calendar.set(Calendar.MONTH, 0);

10-07 18:55