java SimpleDateFormat
问题内容:
在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格式的
。SimpleDateFormat
不幸的是,它不支持与ISO
8601相同的所有时区说明符。如果您希望能够正确处理ISO中指定的所有格式,最好的做法是使用Joda time。
本示例直接来自用户指南:
DateTime dt = new DateTime("2004-12-13T21:39:45.618-08:00");