巴西的ZonedDateTime仍然获得-2而不是-3偏移量

问题描述 投票:1回答:1

我正在使用Java 8,Maven和Spring的应用程序中工作。自2019年以来,巴西废除了夏令时。

基本上,我正在更改系统中的所有日期以保存在utc中,并在使用该应用程序的任何人的时区中显示。大多数用户来自巴西

为了解决时区问题,我将JRE和JDK更新为Java 8的最新版本,因此所有指示为夏令时的日期开始恢复为正常时间。这样我就可以转换日期,并且已经进行了大约两周的时间

问题是今天,在午餐时间,我一直在进行的所有转换都突然返回以指示夏令时,即使根本没有进行任何更新

示例:

calculatedList.forEach(dto -> {
    LocalDateTime date = dto.getResultDate();

    dto.setResultDate(date.atZone(ZoneId.of("UTC")).withZoneSameInstant(ZoneId.of("America/Sao_Paulo")).toLocalDateTime());
});

当我编写此代码时,我确保转换在utc中使用了一个日期并将其带到-3。现在,相同的方法将转换为-2

我已经编写了这样的代码已有2周了,到目前为止一切都已经按预期进行。这是一个非常模糊的问题,但是我无法想象我可能会做些什么来使时区出错。谁能帮助我了解发生了什么?

java date timezone dst zoneddatetime
1个回答
0
投票

按照此页:https://www.oracle.com/technetwork/java/javase/tzdata-versions-138805.html

由于以下原因,巴西不再遵守DST:

  • 13.0.1
  • 11.0.5
  • 8u231
  • 7u241

而您的Java版本是1.8.0_221,其中不包含该更改。

© www.soinside.com 2019 - 2024. All rights reserved.