java.util.Date xx=new java.util.Date();
myyear=xx.getYear();
mymonth=xx.getMonth();
myday=xx.day();
if(mymonth==1)
{
  xx.setYear(myyear-1);
  xx.setMonth(12)
}
else
  xx.setMonth(mymonth-1)l

解决方案 »

  1.   

    给你一个很有用的时间类import java.util.Calendar;
    import java.util.Date;
    import java.text.*;
    public class DateDealWith 
    {
      public DateDealWith(){  
      }
        //取得系统当前时间,格式为yyyy-mm-dd
      public String getCurrentDate(){
            Calendar rightNow = Calendar.getInstance();
            int year=rightNow.get(rightNow.YEAR);
            int month=rightNow.get(rightNow.MONTH)+1;
            int day=rightNow.get(rightNow.DATE);
            return year+"-"+month+"-"+day;
      }
          //取得系统当前时间,格式为yyyy年mm月dd日
      public String getCurrentDate1(){
            Calendar rightNow = Calendar.getInstance();
            int year=rightNow.get(rightNow.YEAR);
            int month=rightNow.get(rightNow.MONTH)+1;
            int day=rightNow.get(rightNow.DATE);
            return year+"年"+month+"月"+day+"日";
      }
        //取得系统当前时间前n个月的相对应的一天
      public String getNMonthBeforeCurrentDay(int n){
          Calendar c = Calendar.getInstance();
          c.add(c.MONTH,-n);
          return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);  }
        //取得系统当前时间后n个月的相对应的一天
      public String getNMonthAfterCurrentDay(int n){
          Calendar c = Calendar.getInstance();
          c.add(c.MONTH,n);
          return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);  }  
      
          //取得系统当前时间前n天,格式为yyyy-mm-dd
      public String getNDayBeforeCurrentDate(int n){
            Calendar c = Calendar.getInstance();
            c.add(c.DAY_OF_MONTH,-n);
           return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);
      }
            //取得系统当前时间后n天,格式为yyyy-mm-dd
      public String getNDayAfterCurrentDate(int n){
            Calendar c = Calendar.getInstance();
            c.add(c.DAY_OF_MONTH,n);
           return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);
      }
      //---------------------------------------------------------------------
          //取过去一个时间对应的系统当年的一天
      public String getCurrentDateAfterPastDate(String sPastDate){
        if(sPastDate!=null && !sPastDate.equals("")){
          Date date=switchStringToDate(sPastDate);
          Calendar c = Calendar.getInstance();
          c.setTime(date);
          int iPastYear=c.get(c.YEAR);
          Calendar c1 = Calendar.getInstance();
          int iCurrentYear=c1.get(c1.YEAR);
          c.add(c.YEAR,iCurrentYear-iPastYear);
          return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);
        }else{
          return null;
        }
      }
      //-----------------------------------------------------------------
      //将一个日期字符串转化成日期
      public Date switchStringToDate(String sDate){
         Date date=null;
         try{
           SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
           date=df.parse(sDate);
           
         }catch(Exception e){
           System.out.println("日期转换失败:"+e.getMessage());
         }
         return date;
      }  //输入两个字符串型的日期,比较两者的大小
      public boolean compareTwoDateBigOrSmall(String fromDate,String toDate){
         Date dateFrom = this.switchStringToDate(fromDate);
         Date dateTo = this.switchStringToDate(toDate);
         if(dateFrom.before(dateTo)){
            return true;
         }else{
            return false;
         }
      }
      
      //将一个日期字符串转化成Calendar
      public Calendar switchStringToCalendar(String sDate){
          Date date = switchStringToDate(sDate);
          Calendar c = Calendar.getInstance();
          c.setTime(date);
          return c;
      }
     //将一个日期转化成Calendar
      public Calendar switchStringToCalendar(Date date){
          Calendar c = Calendar.getInstance();
          c.setTime(date);
          return c;
      }
    //------------------------------------------------------------------------
        //取得某个时间前n个月的相对应的一天
      public String getNMonthBeforeOneDay(String sDate,int n){
          Calendar c = switchStringToCalendar(sDate);
          c.add(c.MONTH,-n);
          return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);  }
        //取得某个时间后n个月的相对应的一天
      public String getNMonthAfterOneDay(String sDate,int n){
          Calendar c = switchStringToCalendar(sDate);
          c.add(c.MONTH,n);
          return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);  }  
      
          //取得某个时间前n天,格式为yyyy-mm-dd
      public String getNDayBeforeOneDate(String sDate,int n){
            Calendar c = switchStringToCalendar(sDate);
            c.add(c.DAY_OF_MONTH,-n);
           return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);
      }
            //取得某个时间后n天,格式为yyyy-mm-dd
      public String getNDayAfterOneDate(String sDate,int n){
            Calendar c = switchStringToCalendar(sDate);
            c.add(c.DAY_OF_MONTH,n);
           return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);
      }
      //判断系统当前时间是不是润年
      public boolean isRunNian(){
       java.util.Calendar rightNow = java.util.Calendar.getInstance();
       int year=rightNow.get(rightNow.YEAR);
       if(0==year%4 && (year%100!=0 || year%400==0)){
          return true;   
       }else{
          return false;
       }  }
    }
      

  2.   

    或者
    java.util.Date xx=new java.util.Date();
    long i=xx.getTime();
    i=i-30*24*60*60*1000;
    java.util.Date yy=new java.util.Date(i);
      

  3.   

    to:mtou(逆风)
    你的方法只能取30天前的时间吧?
      

  4.   

    java.util.Date xx=new java.util.Date();
    myyear=xx.getYear();
    mymonth=xx.getMonth();
    myday=xx.day();
    if(mymonth==1)
    {
      xx.setYear(myyear-1);
      xx.setMonth(12)
    }
    else
      xx.setMonth(mymonth-1)l
      

  5.   

    to: flymoods(放飞心情
    你的方法我试了一下,好象还是有点问题:如果是20030331
    它的前一个月的时间我要求是20030228
    但是得到的结果是:20030303
      

  6.   

    public String getadd_month(String s, int i)
        {
            String s1 = "";
            String s2 = "";
            try
            {
                SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd");
                java.util.Date date = new java.util.Date();
                String s3;
                if(s.trim().compareTo("") == 0)
                    s3 = simpledateformat.format(date);
                else
                    s3 = s;
                int j = (new Integer(s3.substring(0, 4))).intValue();
                int k = (new Integer(s3.substring(5, 7))).intValue();
                int l = (new Integer(s3.substring(8, 10))).intValue();
                GregorianCalendar gregoriancalendar = new GregorianCalendar(j, k, l);
                gregoriancalendar.add(2, i - 1);
                java.util.Date date1 = gregoriancalendar.getTime();
                s1 = simpledateformat.format(date1);
            }
            catch(Exception exception)
            {
                System.out.print("trun month error" + exception.getMessage());
            }
            return s1;
        }