2010-03-10 27 views
65

是否可以在SimpleDateFormat模式字符串中包含字母字符?在SimpleDateFormat模式字符串中使用字母字符

我想創造一個字母 'T' 是時間,例如之前包括格式字符串:

2003-11-15 牛逼 09:30:47-05:00。

我目前使用yyyy-MM-ddhh:mm:ssZ作爲模式字符串。

如果將其更改爲yyyy-MM-ddThh:mm:ssZ,它將拋出一個異常,因爲'A'到'Z'和'a'到'z'是保留的。

是否有任何解決方案不涉及使用兩個DateFormats?

回答

117

周圍的T用單引號應該工作:

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

the documentation(重點煤礦)報價:

的日期和時間格式由日期和時間模式字符串指定。在日期和時間模式字符串中,從'A''Z''a''z'的未加引號字母被解釋爲表示日期或時間字符串組成部分的模式字母。 可以使用單引號(')引用文本以避免解釋。"''"代表單引號。所有其他字符不解釋;它們只是在格式化時被複制到輸出字符串中,或​​者在解析過程中與輸入字符串匹配。

您具體的使用情況下,即使是作爲一個例子:

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

作爲記錄在http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat。 html –

+0

@Joachim:是的,正要補充:) – Joey