在简单日期格式模式字符串中使用字母字符

是否可以在 SimpleDateFormat Pattern String 中包含字母字符?

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

2003-11-15T09:30:47-05:00.

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

如果我将其更改为它将引发异常,因为“A”到“Z”和“a”到“z”是保留的。yyyy-MM-ddThh:mm:ssZ

是否有任何解决方案不涉及使用两个日期格式?


答案 1

用单引号括起来应该有效: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  

答案 2