在SimpleDateFormat模式字符串中使用字母字符


78

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

我试图创建一个格式字符串,例如在时间之前包括字母“ T”:

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

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

如果我将其更改为yyyy-MM-ddThh:mm:ssZ它,则会抛出异常,因为保留了“ A”至“ Z”和“ a”至“ z”。

是否有不涉及使用两个DateFormat的解决方案?

Answers:


141

周围的T单引号应该工作:

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

引用文档(重点是我的):

日期和时间格式由日期和时间模式字符串指定。在日期和时间模式字符串,从带引号的字母'A''Z''a''z'被解释为代表的日期或时间字符串的组件模式字母。可以使用单引号(')来引用文本,以避免解释。 "''"代表单引号。其他所有字符均不解释;它们仅在格式化期间被复制到输出字符串中,或​​者在解析期间与输入字符串匹配。

甚至包括您的特定用例作为示例:

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


@Joachim:是的,要补充一点:)
Joey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.