Calendar中有个核心的方法:add(int field,int amount),用起来很简单。
Calendar calendar = Calendar.getInstance(); // 得到一个Calendar的实例
calendar.setTime(new Date()); // 设置时间为当前时间
calendar.set(2017, 11, 11); // 月份是从0开始的,所以11表示12月 显示结果:2017-12-11
calendar.add(Calendar.YEAR, -1); // 年份减1 当-1改成1或者+1时,下一个年/月/日的日期
calendar.add(Calendar.MONTH, -1); // 月份减1
ca.add(Calendar.DATE, -1); // 日期减1=前一天
//获取上个月的第一天 (第二参数可以是0至任意数,但0是上月最后一天,31是下月的第一天)
calendar.add(Calendar.MONTH, -1); // 月份减 1
calendar.set(Calendar.DAY_OF_MONTH, 1); // set 取值是当月的第一天
//获取上个月的最后一天
calendar.set(Calendar.DAY_OF_MONTH, 0);
Date resultDate = calendar.getTime(); // 结果
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //yyyy-MM-dd EEEE (2018-06-11 星期一)
Calendar calendar = Calendar.getInstance(); // 得到一个Calendar的实例
calendar.setTime(new Date()); // 设置时间为当前时间
calendar.set(2017, 11, 11); // 月份是从0开始的,所以11表示12月 显示结果:2017-12-11
calendar.add(Calendar.YEAR, -1); // 年份减1 当-1改成1或者+1时,下一个年/月/日的日期
calendar.add(Calendar.MONTH, -1); // 月份减1
ca.add(Calendar.DATE, -1); // 日期减1=前一天
//获取上个月的第一天 (第二参数可以是0至任意数,但0是上月最后一天,31是下月的第一天)
calendar.add(Calendar.MONTH, -1); // 月份减 1
calendar.set(Calendar.DAY_OF_MONTH, 1); // set 取值是当月的第一天
//获取上个月的最后一天
calendar.set(Calendar.DAY_OF_MONTH, 0);
Date resultDate = calendar.getTime(); // 结果
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //yyyy-MM-dd EEEE (2018-06-11 星期一)
System.out.println(sdf.format(resultDate));
第一次写博客,不足之处,请大牛指教!!!