解析GMT字符串当地
问题描述:
我有一个date = 2011-04-17T22:02:00.001-07:00
,我使用SDF解析GMT字符串当地
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
formatter.parse(date)
我它不支持-07解析:00,但-0700作品。格式中应该改变什么?
答
看来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允许一些变化,这将无法正常工作。
尝试使用[TimeZone](http://download.oracle.com/javase/6/docs/api/java/util/TimeZone.html)它可能会帮助你。 – 2011-04-18 05:31:35