我的第一次尝试是:
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
Date date = formatter.parse(string);
它会抛出ParseException异常,因此我发现了这个技巧:
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
TimeZone timeZone = TimeZone.getTimeZone("Etc/GMT");
formatter.setTimeZone(timeZone);
Date date = formatter.parse(string);
它还是不起作用,现在我陷入了困境。如果我将时区更改为"GMT",它可以无问题地解析。
编辑:要解析的示例字符串将是“2011-11-29 10:40:24 Etc/GMT”。
编辑2:我不想完全删除时区信息。我正在编写一个接收来自外部用户的日期的服务器,因此可能会有其他时区的其他日期。 更准确地说:我收到的这个特定日期来自在iPhone应用程序上进行应用内购买后从苹果服务器接收到的收据,但我也可以从其他来源接收日期。
z
去掉,这样它就不会考虑时区了。你的代码将能够正常工作! - HashimR