java.util.Date a java.sql.Date la conversión da un mes equivoca

Considere el siguiente fragmento:

Calendar futureDate = Calendar.getInstance();
int year = 2011;
int month = 11;
int day = 14;
futureDate.set(year,month, day);
System.out.println(futureDate.toString());
java.sql.Date sqlDate  = new java.sql.Date( futureDate.getTime().getTime());

La impresión de futureDate.toString () es:

..... AÑO = 2011, MES = 11, WEEK_OF_YEAR = 43, WEEK_OF_MONTH = 4, DAY_OF_MONTH = 14, DAY_OF_YEAR = 289, DAY_OF_WEEK = 1, DAY_OF_WEEK_IN_MONTH = 3, AM_F 11, HO_, HO_, HO_, 11 MINUTO = 32, SEGUNDO = 51, MILISECOND = 117, ZONE_OFFSET = -18000000, DST_OFFSET = 3600000]

que muestra que el objeto Calendare tiene la fecha correcta. Sin embargo, después de convertir a la fecha sql y almacenar en la base de datos (MySQL a través de JDBC), la tabla MySQL muestra '2011-12-14' para esta fecha en lugar de '2011-11-14'. Hubiera sospechado la ubicación y la zona horaria, pero esto causaría discrepancias en la hora del día, no en la parte del mes de la fecha.

¿Alguna pista de lo que hice mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta