是否可以在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?
答案 0 :(得分:128)
使用单引号在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