Calendar cl = new Calendar.getInstance();//获取日历对象
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String str = sf.format(cl.getTime());//当前时间
本月第一天:直接设置月份为当前月份,day为1号(当前月份为Calendar.MONTH-1)
cl.set(Calendar.MONTH,-1);
cl.set(Calendar.DAY_OF_MONTH,1);
String str2 = sf.format(cl.getTime());//本月第一天
本月最后一天:先将时间设置为下个月1号,然后减一天,即为本月最后一天
cl.set(Calendar.MONTH,0);//设置月份为下个月
cl.set(Calendar.DAY_OF_MONTH,1);//设置day为1号
cl.add(Calendar.DATE,-1);将时间减1天
String str3 = sf.format(cl.getTime());//本月最后一天
上月第一天:直接设置月份为上个月,day为1号
cl.set(Calendar.MONTH,-2);//设置月份为上个月
cl.set(Calendar.DAY_OF_MONTH,1);//设置day为1号
String str4 = sf.format(cl.getTime());
上月最后一天:先将时间设置为本月1号,然后减一天即为上月最后一天
cl.set(Calendar.MONTH,-1);//设置为本月
cl.set(Calendar.DAY_OF_MONTH,1);//设置day为1号
cl.add(Calendar.DATE,-1);//将时间减1天
String str5 = sf.format(cl.getTime());//上月最后一天
下月第一天:直接设置月份为下月,day为1号
cl.set(Calendar.MONTH,0);//设置为下月
cl.set(Calendar.DAY_OF_MONTH,1);设置day为1号
String str6 = sf.format(cl.getTime());//下月第一天
下月最后一天:设置月份为下下月,day为1号,然后减一天
cl.set(Calendar.MONTH,1);//设置为下下月
cl.set(Calendar.DAY_OF_MONTH,1);设置day为1号
cl.add(Calendar.DATE,-1);//将时间减1天
String str7 = sf.format(cl.getTime());//下月最后一天