こういう感じでやりたいんだけど、自分で作るのはナンセンスなのかなと。
SimpleDateFormat も、なんかちょっとややこしい気がする。。。理解力不足かな。

import java.util.*;
import java.text.*;
public class Main {
  public static void main(String[] args){
    Calendar cal = GregorianCalendarFactory.create("2004/6/10");
    DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
    System.out.println(df.format(cal.getTime()));
  }
}

class GregorianCalendarFactory {
  public static GregorianCalendar create(String s){
    int index1, index2, y, m, d;
    y = m = d = 0;
    try{
      index1 = s.indexOf('/');
      index2 = s.indexOf('/', index1 + 1);
      y = Integer.parseInt(s.substring(0, index1).trim());
      m = Integer.parseInt(s.substring(index1 + 1, index2));
      d = Integer.parseInt(s.substring(index2 + 1).trim());
    }
    catch(Exception e){}
    return new GregorianCalendar(y, m - 1, d);
  }
}