GregorianCalendar c = new GregorianCalendar();
c.setTime(toDate);
c.add(Calendar.DATE, 1);
sql.append((where++ > 0 ? "AND" : "WHERE")
+ " USER_DATE < TO_DATE('" + sdf.format(c.getTime())
+ "','MM/dd/yyyy') ");改写获得toDate所在月最后一天。谢谢!

解决方案 »

  1.   

     Calendar cal = Calendar.getInstance();
     cal.setTime(toDate);
     int month = cal.get(Calendar.MONTH+1); // 本月月份
     int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH); // toDate所在月最后一天
      

  2.   

    Date date = new Date();
    // 获取年
    int year = date.getYear() + 1900;
    //月
    int month = date.getMonth();
    Date lastDate = new Date(year, month + 1, 0);//当前月最后一天
      

  3.   

    Calendar cal = Calendar.getInstance();
     cal.setTime(toDate);
     int month = cal.get(Calendar.MONTH+1); // 本月月份
     int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH); 
      

  4.   

                    Calendar lastDate = Calendar.getInstance();
    lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
    lastDate.add(Calendar.MONTH, 1);// 加一个月,变为下月的1号
    lastDate.add(Calendar.DATE, -1);// 减去一天,变为当月最后一天
      

  5.   


    最后一天日期
    maxDate=`cal $month $year | xargs | awk '{print $NF}'`