在使用 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
作为月份,您的问题是可重现的。
所以我怀疑问题的原因就在那里,并且您没有运行您认为正在运行的代码版本。按照您的问题重新编译并重新执行代码。这是正确的。
关于java - 使用 SimpleDateFormat 的奇怪日期和时间解析结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4113859/