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

标签 java android parsing 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;
    }
}

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

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/

相关文章:

java - 列出java编译器在编译过程中需要的所有类

java - 有没有办法以速度转换对象?

Java 8 并行处理和 Lambda 表达式

c++ - 如何使用 libpcap 解析以太网数据包?

c# - 正则表达式获取 C# 中模式的所有可能匹配项

java - 如何判断 java.jms.TopicSubscriber 何时失去与消息代理的连接?

android - 如何更改 ProgressDialog 的定位?

Android:应用程序范围的字体大小偏好

android - 给 ListView 的 TextView 添加标签?

c++ - 我是否错误地使用了 atoi?