使用 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 上。
我该如何修复它?
如果您使用,您的问题是可以重现的mm
一个月而不是MM
.
所以我怀疑问题的原因就在那里,并且您没有运行您认为正在运行的代码版本。按照您的问题重新编译并重新执行代码。这是正确的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)