我正在使用SDF解析date = 2011-04-17T22:02:00.001-07:00
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
formatter.parse(date)
我不支持-07:00但-0700有效。什么应该改变格式?
答案 0 :(得分:2)
SimpleDateFormat
似乎不支持ISO8601时区格式。如果您确定您的时区始终以-##:##
(或+##:##
)格式结束,那么您可以删除最后一个:
,以便现有的格式化工具正常工作。例如。这解析了你的日期:
String input = "2011-04-17T22:02:00.001-07:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date date = sdf.parse(input.replaceAll(":(..)$", "$1"));
但是要小心,显然ISO8601允许一些不同的变化。
答案 1 :(得分:1)