ma perché fai avanti e indietro con ste date? Hai già tutto, solo che mi viene il sospetto che tu programmi senza API sotto mano, il che è male, soprattutto quando si usano classi/oggetti che non si conoscono o che si conoscono appena:

codice:
SimpleDateFormat fodata = new SimpleDateFormat("yyyy-MM-dd"); 
String datatemp = fodata.format(gc.getTime());
java.sql.Date sqlDate = new java.sql.Date(gc.getTimeInMillis());
System.out.println("Formattata: "+datatemp+" SQL Date: "+sqlDate);
quindi come vedi, non mi serve riparsare datetemp, ma uso direttamente il costruttore più adatto (e non hai molta scelta, visto che al pari di Date di utils anche quella di sql è molto limitata dai vari deprecated).