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

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

我正在尝试创build一个格式化string,其中字母“T”包含在时间之前,例如:

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

我目前使用yyyy-MM-ddhh:mm:ssZ作为模式string。

如果我将其更改为yyyy-MM-ddThh:mm:ssZ ,它将抛出一个exception,因为“A”到“Z”和“a”到“z”被保留。

有什么解决scheme不涉及使用两个DateFormats?

围绕T单引号应该工作:

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

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

date和时间格式由date和时间模式string指定。 在date和时间模式string中,从'A''Z'以及从'a''z'未加引号的字母被解释为表示date或时间string的组成部分的模式字母。 可以使用单引号( ' )引用文本以避免解释。 "''"代表单引号。 所有其他字符不解释; 它们只是在格式化时被复制到输出string中,或​​者在parsing过程中与inputstring匹配。

甚至包括您的具体用例作为例子:

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