使用SimpleDateFormat解析结果的奇怪日期和时间

Mav*_*rik 5 java parsing android date simpledateformat

使用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;
    }
}
Run Code Online (Sandbox Code Playgroud)

对于输入我给它一个字符串

2010-09-06T15:30:00+02:00
Run Code Online (Sandbox Code Playgroud)

作为回报,我得到一个Date对象,日期设置为2010年1月6日,时间为13:30,时区为GMT + 00:00.

编辑:我也尝试使用"2010-09-06T15:30:00 + 0200",结果相同.

令人困惑的是,日期设置部分正确,只是月份设置错误.

问题显示在Android 1.6和Android 2.2上.

我该如何解决?

Bal*_*usC 6

如果您使用mm月份而不是使用,则您的问题可以重现MM.

因此我怀疑问题的原因在那里,并且您没有运行您认为正在运行的代码版本.在您的问题中重新编译并重新执行代码.这是正确的.