【发布时间】:2011-09-18 09:16:45
【问题描述】:
在Java中,如何解析包含不代表模式的字母的日期字符串?
“2007-11-02T14:46:03+01:00” 字符串日期="2007-11-02T14:46:03+01:00"; 字符串格式 = "yyyy-MM-ddTHH:mm:ssz"; 新的 SimpleDateFormat(format).parse(date); 线程“主”java.lang.IllegalArgumentException 中的异常:非法模式字符“T” 在 java.text.SimpleDateFormat.compile(SimpleDateFormat.java:769) 在 java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:576) 在 java.text.SimpleDateFormat.(SimpleDateFormat.java:501) 在 java.text.SimpleDateFormat.(SimpleDateFormat.java:476)【问题讨论】:
-
请注意,关于解析 ISO 8601 日期的问题是一个常见问题解答。搜索“Java ISO 8601 日期”或类似内容,您会找到很多答案。
-
对于今天或明天阅读此问题的任何人,我建议您不要使用
SimpleDateFormat。这个类是出了名的麻烦而且已经过时了。相反,只需使用来自java.time, the modern Java date and time API 的OffsetDateTime。