巴西的 ZonedDateTime 仍然得到 -2 而不是 -3 偏移量
ZonedDateTime in Brazil still getting -2 instead of -3 offset
我在使用 Java 8、Maven 和 Spring 的应用程序中工作。自2019年起,巴西废除了夏令时。
基本上我正在更改系统中的所有日期以保存在 utc 中并显示在使用该应用程序的任何人的时区中。大多数用户来自巴西
为了解决时区问题,我将 JRE 和 JDK 更新为最新版本的 java 8,因此所有指示夏令时的日期都开始 return到正常时间。
这样我就可以转换日期了,我已经这样做了大约两周
问题是今天中午前后,我一直在做的所有转换突然 return 显示夏令时,甚至根本没有更新任何东西
示例:
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 周了,到目前为止一切正常。这是一个非常模糊的问题,但我无法想象我可能做了什么让时区出错。谁能帮助我了解发生了什么?
根据此页面:https://www.oracle.com/technetwork/java/javase/tzdata-versions-138805.html
巴西不再遵守夏令时,因为:
- 13.0.1
- 11.0.5
- 8u231
- 7u241
而您的 Java 版本是 1.8.0_221
,其中不包含该更改。
我在使用 Java 8、Maven 和 Spring 的应用程序中工作。自2019年起,巴西废除了夏令时。
基本上我正在更改系统中的所有日期以保存在 utc 中并显示在使用该应用程序的任何人的时区中。大多数用户来自巴西
为了解决时区问题,我将 JRE 和 JDK 更新为最新版本的 java 8,因此所有指示夏令时的日期都开始 return到正常时间。 这样我就可以转换日期了,我已经这样做了大约两周
问题是今天中午前后,我一直在做的所有转换突然 return 显示夏令时,甚至根本没有更新任何东西
示例:
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 周了,到目前为止一切正常。这是一个非常模糊的问题,但我无法想象我可能做了什么让时区出错。谁能帮助我了解发生了什么?
根据此页面:https://www.oracle.com/technetwork/java/javase/tzdata-versions-138805.html
巴西不再遵守夏令时,因为:
- 13.0.1
- 11.0.5
- 8u231
- 7u241
而您的 Java 版本是 1.8.0_221
,其中不包含该更改。