Java: eccezione di data non sostituibile

Durante il tentativo di trasformare il formato della data ottengo un’eccezione: data non analizzabile e non so come risolvere questo problema.

Sto ricevendo una stringa che rappresenta una data dell’evento e vorrei visualizzare questa data in un formato diverso nella GUI.

Quello che stavo cercando di fare è il seguente:

private String modifyDateLayout(String inputDate){ try { //inputDate = "2010-01-04 01:32:27 UTC"; Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z").parse(inputDate); return new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(date); } catch (ParseException e) { e.printStackTrace(); return "15.01.2010"; } } 

Ad ogni modo la linea

 String modifiedDateString = originalDate.toString(); 

è un manichino Vorrei ottenere una stringa di data nel seguente formato:

gg.mm.aaaa HH: mm: ss

e l’esempio di stringa di input è il seguente:

2010-01-04 01:32:27 UTC

Qualcuno sa come convertire la data di esempio (String) sopra in un formato stringa dd.MM.yyyy HH: mm: ss?

Grazie!

Modifica: ho corretto il formato della data di input sbagliato, ma ancora non funziona. Sopra è il metodo incollato e sotto è l’immagine dello schermo dalla sessione di debug.

testo alternativo http://img683.imageshack.us/img683/193/dateproblem.png

#Aggiornamento che ho corso

 String[] timezones = TimeZone.getAvailableIDs(); 

e c’è una stringa UTC nell’array. È un problema strano

Ho fatto un hack sporco che funziona:

 private String modifyDateLayout(String inputDate){ try { inputDate = inputDate.replace(" UTC", ""); Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(inputDate); return new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(date); } catch (ParseException e) { e.printStackTrace(); return "15.01.2010"; } } 

Ma preferirei comunque trasformare l’input originale senza ridurre il timezone.

Questo codice è scritto per il telefono Android con JDK 1.6.