Правила перехода на летнее время в Бразилии были изменены, но эти новые правила отсутствуют в последней версии 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!
Я отправил электронное письмо Iana (Internet Assigned Numbers Authority) - www.iana.org и жду ответа.
Кто-нибудь знает что-нибудь об этом?
Спасибо
Правка: Чтобы уточнить вопрос: я хочу знать, как работают обновления в базе данных TimeZone (когда это будет сделано и кем).
Поскольку Iana ответила на мое электронное письмо и объяснила мне, что изменения летнего времени в Бразилии были внесены на Brazil has canceled DST - GitHub and it will be on the next release of the database, my question was answered.