使用 SimpleDateFormat 解析 ISO8601 日期和时间时遇到一个奇怪的问题。相关代码为:
public class DateHelper
{
private static SimpleDateFormat iso8601formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
public static Date parseISO8601(String date) throws ParseException
{
Date result = iso8601formatter.parse(date);
return result;
}
}
对于输入,我给它一个字符串
2010-09-06T15:30:00+02:00
作为回报,我得到一个 Date 对象,其日期设置为 2010 年 1 月 6 日,时间为 13:30,时区为 GMT+00:00。
编辑:我也尝试使用“2010-09-06T15:30:00+0200”得到相同的结果。
令人困惑的是,日期设置部分正确,只是月份设置错误。
该问题出现在 Android 1.6 和 Android 2.2 上。
我该如何解决?