public static void main(String[] args){
  Calendar cal = Calendar.getInstance(); //日历 
        // 当前月+1,即下个月 
        cal.add(cal.MONTH, 1); //得到下个月的月份 
        // 将下个月1号作为日期初始 
        cal.set(cal.DATE, 1); 
        // 下个月1号减去一天,即得到当前月最后一天 
        cal.add(cal.DATE, -1); 
        java.text.SimpleDateFormat df = new java.text.SimpleDateFormat( 
                "yyyy-MM-dd"); 
        String day_end = df.format(cal.getTime()); 
        Calendar c = Calendar.getInstance(); 
        c.set(c.DATE, 1); 
        System.out.println("当前月第一天>>"+df.format(c.getTime())) ; 
        System.out.println("当前月最后一天>>>" + day_end); 
 }
}

总结:

只要明白set与add的用法就很容易处理上面的问题!