在Java中,如何解析包含不代表模式的字母的日期字符串?
"2007-11-02T14:46:03+01:00"
String date ="2007-11-02T14:46:03+01:00";
String format = "yyyy-MM-ddTHH:mm:ssz";
new SimpleDateFormat(format).parse(date);
Exception in thread "main" java.lang.IllegalArgumentException: Illegal pattern character 'T'
at java.text.SimpleDateFormat.compile(SimpleDateFormat.java:769)
at java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:576)
at java.text.SimpleDateFormat.(SimpleDateFormat.java:501)
at java.text.SimpleDateFormat.(SimpleDateFormat.java:476)
Bal*_*a R 21
你可以试试
String format = "yyyy-MM-dd'T'HH:mm:ssz";
Run Code Online (Sandbox Code Playgroud)
参考:来自Javadoc
可以使用单引号(')引用文本以避免解释.
您尝试解析的时间似乎是ISO 8601格式.SimpleDateFormat遗憾的是,它不支持所有与ISO 8601相同的时区说明符.如果您希望能够正确处理ISO中指定的所有表单,最好的办法是使用Joda时间.
此示例直接来自用户指南:
DateTime dt = new DateTime("2004-12-13T21:39:45.618-08:00");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61114 次 |
| 最近记录: |