【发布时间】:2017-11-19 04:23:16
【问题描述】:
我正在尝试使用SimpleDateFormat 将Date 格式化为String,而我使用的模式就是这个
"yyyy-MM-dd'T'HH:mm:ss.SSSxxx"
但是当到达这条线
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSxxx");
我得到以下异常:
java.lang.IllegalArgumentException:未知模式字符“x”在 java.text.SimpleDateFormat.validatePatternCharacter(SimpleDateFormat.java:323) 在 java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:312) 在 java.text.SimpleDateFormat.(SimpleDateFormat.java:365) 在 java.text.SimpleDateFormat.(SimpleDateFormat.java:258)
我试图实现的格式是 “2017-06-16T12:19:59.001+02:00”
根据documentation,这个模式应该可以工作 怎么了?
编辑 为了澄清,我尝试了 xxx 和 XXX
如果是 XXX,我会得到 java.lang.IllegalArgumentException: Unknown pattern character 'X'
【问题讨论】:
-
您使用大写的
X附加了模式,而文档告诉它应该是小写的x。但随后异常堆栈再次告知小写x。你能澄清一下吗? -
时区的“X”是 SimpleDateFormat 中相对较新的功能。如果您在仅支持 Java 6 的 Android 版本上运行它,那么它将无法工作。
-
是的,但我尝试了大写和小写。
-
@BalázsNemes 有什么选择?
-
我真的不知道。这是一个完全有效的问题。与Java SE相反,旧版本的Android不支持
X。我不知道为什么人们会无缘无故地否决这个问题。我要对这个问题投赞成票。
标签: java android simpledateformat android-date