大日期的SimpleDateFormat错误

时间:2013-04-10 13:09:47

标签: android simpledateformat

更新:我认为Android版本应该受到指责,但事实证明它是用户时区

当我的平板电脑时间在中欧时间(夏令时+2)时,此代码会产生错误的输出:

        SimpleDateFormat dateTimeFormatter = new SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss Z", Locale.GERMAN);

        Date testDate = dateTimeFormatter
                .parse("2999-01-01 00:00:00 +0100");
        Log.v(TAG, "test 1 " + testDate);

        testDate = dateTimeFormatter.parse("2099-01-01 00:00:00 +0100");
        Log.v(TAG, "test 2 " + testDate);

“test 1 Mon Dec 31 23:19:32 CET 2998”

“test 2 Thu Jan 01 00:00:00 CET 2099”

有时差。为什么较大的日期有40分钟和几秒钟的差异?

当我将平板电脑放入(大多数)其他时区时,该错误不存在。与节省时间的时区有什么关系?

1 个答案:

答案 0 :(得分:0)

猜猜我无法克服这个错误,我已经建立了自己的日期解析器。

更新:我自己的解析器有同样的问题

我目前的解决方案是不使用这些大日期。如果日期>未来100年,我将来将其定为100年。