Voglio che miaData rappresenti le 15 del 21 giugno 2005 per esempio

codice:
GregorianCalendar miaData = new GregorianCalendar();
miaData.setLenient(false);
miaData.set(2005,5,21,15,00);
System.out.println(miaData.get(Calendar.DAY_OF_MONTH)+"/"+miaData.get(Calendar.MONTH)+1)+"/"+miaData.get(Calendar.YEAR));
System.out.println(miaData.get(Calendar.HOUR_OF_DAY)+":"+ miaData.get(Calendar.SECOND));
Perché la data viene stampata correttamente mentre l'ora è sballata?
Ho trovato in rete cal.set(Calendar.AM_PM,Calendar.AM) ma non è obbligatorio ,i pare di aver capito e comunque non mi funziona.

Grazie in anticipo!