1

更新:我以为是安卓版本的问题,但结果是用户时区

当我的平板电脑时间处于中欧时间(夏季时间 +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);

“测试 1 星期一 12 月 31 日 23:19:32 CET 2998”

“测试 2 Thu Jan 01 00:00:00 CET 2099”

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

当我将平板电脑放在(大多数)其他时区时,该错误不存在。与具有夏令时的时区有关吗?

4

1 回答 1

0

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

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

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

于 2013-04-11T07:21:31.853 回答