2011-01-17 12 views
19

Ho bisogno di un formato data (forse SimpleDateFormat) che analizzi l'output che ottengo quando chiamo toString() su un oggetto Date. L'output sul mio sistema tedesco (!) È: "Dom 12 dicembre 13:45:12 CET 2010", quindi non sembra onorare i locali, il che sembra renderlo semplice.come analizzare l'output del nuovo Date(). ToString()

Chiunque?

risposta

27

Tale formato è specificato nello Date#toString().

converte questo oggetto Date ad un String della forma:

dow mon dd hh:mm:ss zzz yyyy 

Quindi, in SimpleDateFormat termini di pattern:

EEE MMM dd HH:mm:ss zzz yyyy 

correlato al problema, mi chiedo se non fosse al primo posto una cattiva idea usare Date#toString() anziché SimpleDateFormat#format() per le date di output. Prenderò in considerazione di sistemarlo direttamente lì.

+0

Il problema è che ho ottenuto dati prodotti tramite date.toString() ... avrei usato anche DateFormat. – Daniel

+7

PER TUTTI GLI ALTRI: Si prega di notare che è necessario inizializzare il DateFormat con Locale.US per farlo funzionare in paesi non statunitensi. – Daniel

6

BalusC ti ha dato il formato corretto, tu direi: non farlo. Il metodo toString() non deve essere utilizzato per scopi diversi dalla registrazione.

È possibile utilizzare SimpleDateFormat per la formattazione e l'analisi.

+2

Si noti che 'java.sql.Date' ha un diverso risultato' toString() '. –

Problemi correlati