是否可以在 SimpleDateFormat 模式字符串中包含字母字符?
我正在尝试创建一个格式字符串,其中在时间之前包含字母“T”,例如:
2003-11-15T09:30:47-05:00。
我目前正在使用yyyy-MM-ddhh:mm:ssZ
作为模式字符串。
如果我把它改成yyyy-MM-ddThh:mm:ssZ
它将抛出异常,因为“A”到“Z”和“a”到“z”被保留。
有没有不涉及使用两种 DateFormat 的解决方案?
周边T
带单引号应该有效:
yyyy-MM-dd'T'hh:mm:ssZ
引用自文档 http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat.html(强调我的):
日期和时间格式由日期和时间模式字符串指定。在日期和时间模式字符串中,不带引号的字母来自'A'
to 'Z'
和来自'a'
to 'z'
被解释为表示日期或时间字符串组成部分的模式字母。文本可以使用单引号 ('
)以避免解释。 "''"
代表单引号。所有其他字符均不被解释;它们只是在格式化过程中被复制到输出字符串中,或者在解析过程中与输入字符串进行匹配。
您的具体用例甚至作为示例包括在内:
Date and Time Pattern Result
-------------------------------------------------------------
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)