2010-03-10 20 views
65

È possibile includere un carattere alfabetico in una stringa di pattern SimpleDateFormat?Utilizzo di caratteri alfabetici in stringa Pattern SimpleDateFormat

Sto cercando di creare una stringa di formato in cui la lettera 'T' è incluso prima del tempo per esempio:

2003-11-15 T 09: 30: 47-05: 00.

Attualmente sto usando yyyy-MM-ddhh:mm:ssZ come stringa del modello.

Se lo cambio in yyyy-MM-ddThh:mm:ssZ verrà generata un'eccezione come 'A' a 'Z' e 'a' a 'z' sono riservati.

Esiste una soluzione che non implichi l'utilizzo di due DateFormats?

risposta

117

Intorno alla T con apici dovrebbe funzionare:

yyyy-MM-dd'T'hh:mm:ssZ 

Citando the documentation (sottolineatura mia):

formati di data e ora sono specificati dalla data e ora stringhe di pattern. All'interno di stringhe di pattern di data e ora, le lettere non quotate da 'A' a 'Z' e da 'a' a 'z' vengono interpretate come lettere di pattern che rappresentano i componenti di una stringa di data o ora. Il testo può essere citato utilizzando virgolette singole (') per evitare l'interpretazione."''" rappresenta una singola citazione. Tutti gli altri personaggi non sono interpretati; vengono semplicemente copiati nella stringa di output durante la formattazione o confrontati con la stringa di input durante l'analisi.

Il tuo caso specifico uso è anche incluso come un esempio:

Date and Time Pattern   Result 
------------------------------------------------------------- 
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"  2001-07-04T12:08:56.235-0700 
+1

come documentato in http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat. html –

+0

@Joachim: Sì, stavo per aggiungere che :) – Joey

Problemi correlati