2013-02-03 8 views
5

Come posso eseguire questa conversione in Java?Converti "venerdì 1 febbraio 2013" in "2013-02-01"

Attualmente, sto facendo:

public static String formatDate(String strDateToFormat) { 
    try { 
     SimpleDateFormat sdfSource = new SimpleDateFormat("EEEE, MMMM DD, YYYY"); 
     Date date = sdfSource.parse(strDateToFormat); 
     SimpleDateFormat sdfDestination = new SimpleDateFormat("yyyy-MM-dd"); 
     return sdfDestination.format(date); 
    } catch (ParseException pe) { 
     System.err.println("Parse Exception : " + pe); 
    } 

    return null; 
} 

Tuttavia, questo si traduce in un formato non corretto. Mi dà il seguente risultato:

Friday, February 1, 2013 > 2013-01-04 
Thursday, January 31, 2013 > 2013-01-03 
+2

perché hai ripetuto l'uscita per due valori così tante volte? –

+0

Cambiare "DD" con "d" e "YYYY" di "yyyy" –

+0

Sostituire 'System.err.println (" Parse Exception: "+ pe);' con 'pe.printStackTrace();'. O, meglio ancora, lanciare quell'eccezione dal tuo metodo. –

risposta

9

Stai usando DD in parte l'analisi, che è il giorno dell'anno. Vuoi invece dd. Probabilmente vorrai anche yyyy (anno) invece di YYYY (anno della settimana). (Nella maggior parte dei casi hanno lo stesso valore, ma non sempre.)

Problemi correlati