今日は2013-02-25ですが、なぜこのコードは2013-03-25を返すのですか?
       String currentDate =  new SimpleDateFormat("yyyy MM dd hh mm ss").format(new java.util.Date());
       System.out.println("current Date "+currentDate);
       StringTokenizer  token = new StringTokenizer(currentDate);
       Calendar cal = Calendar.getInstance();
       cal.set(Integer.parseInt(token.nextToken()),
               Integer.parseInt(token.nextToken()), 
               Integer.parseInt(token.nextToken()), 
               Integer.parseInt(token.nextToken()),
               Integer.parseInt(token.nextToken()),
               Integer.parseInt(token.nextToken()));
       String calenderDate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(cal.getTime());
       System.out.println("calender date "+calenderDate);
       cal.add(Calendar.MONTH, -1); //  set to one month ago
       String pastDate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(cal.getTime());
       System.out.println("past Date "+pastDate);
出す
現在の日付20130225 04 56 26
カレンダー日付2013-03-2504:56:26
過去の日付2013-02-2504:56:26