是否可以在 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 的解决方案?
是否可以在 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 的解决方案?
用T
单引号括起来应该可以工作:
yyyy-MM-dd'T'hh:mm:ssZ
引用文档(强调我的):
日期和时间格式由日期和时间模式字符串指定。在日期和时间模式字符串中,不带引号的 from
'A'
to'Z'
和 from'a'
to'z'
被解释为表示日期或时间字符串组件的模式字母。可以使用单引号 ('
) 引用文本以避免解释。"''"
表示单引号。不解释所有其他字符;它们只是在格式化期间复制到输出字符串中,或者在解析期间与输入字符串匹配。
您的特定用例甚至作为示例包括在内:
Date and Time Pattern Result
-------------------------------------------------------------
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700