巴西的Java夏令时新规则

时间:2019-06-10 22:56:02

标签: java timezone dst iana

巴西夏时制的规则已更改,但最新的Java版本中没有此新规则。

在此测试代码上,使用RedHat提供的最新版本(java-1.8.0-openjdk-1.8.0.212-3),结果不是预期的:

    try {
        final SimpleDateFormat parser = new SimpleDateFormat( "dd/MM/yyyy" );
        final Date date = parser.parse( "05/12/2019" ); // 5th of december

        System.out.println( "Is in Daylight Saving Time in this time zone? "
            + TimeZone.getTimeZone( "America/Sao_Paulo" ).inDaylightTime( date ) );
    } catch ( ParseException exception ) {
        exception.printStackTrace();
    }

输出为:

Is in Daylight Saving Time in this time zone? true // should be false!

我已经发送了一封电子邮件到www.iana.org Iana(互联网号码分配机构),我在等待他们的回复。

有人知道吗?

谢谢

修改: 为了澄清这个问题:我想知道TimeZone数据库上的更新是如何工作的(何时以及由谁完成)。

Sinse the Iana回答了我的电子邮件,并向我解释说,巴西DST的更改是在Brazil has canceled DST - GitHub上进行的,它将在数据库的下一个版本中得到解答。

1 个答案:

答案 0 :(得分:1)

此更改已在4月(thread herecommit here)的tz数据中进行。该版本将于2019b发布。

还没有确切宣布何时发生的公告,但是您可以订阅tz-announce邮件列表,以在收到通知时得到通知。

当然,您需要等待相应的Java更新,或使用ziupdater或tzupdater工具。