para pasar un String a fecha GregorianCalendar yo uso esto y me va de puta madre.
fecha.setTime(com.bitmechanic.sql.SQLUtil.parseHiResMysqlDate(fechaString));
donde fecha es de clase GregorianCalendar y fechaString pues un string siendo el formato del String '0000-00-00'
saludos