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

Gor*_*don 72 java formatting datetime simpledateformat

是否可以在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'保留.

是否有任何解决方案不涉及使用两个DateFormats?

Joe*_*oey 131

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

yyyy-MM-dd'T'hh:mm:ssZ
Run Code Online (Sandbox Code Playgroud)

引用文档(强调我的):

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

您的具体用例甚至包括在内:

Date and Time Pattern            Result
-------------------------------------------------------------
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"     2001-07-04T12:08:56.235-0700  
Run Code Online (Sandbox Code Playgroud)