tema de ahorro de luz de día durante el día en Java 8 para la zona horaria Australia / Melbourne

user3405294:

Estoy consiguiendo resultados diferentes para el día de inicio de ahorro de luz y al final.

ZoneId zone = ZoneId.of("Australia/Melbourne");
System.out.println(ZonedDateTime.of(2019, 04, 07, 3, 0, 0, 0, zone)); // statement-1
System.out.println(ZonedDateTime.of(2019, 10, 06, 2, 0, 0, 0, zone)); // statement-2

Para la primera mitad del ahorro de luz del día para el año 2019, estoy consiguiendo como resultado (2019-04-07T03: 00 ** + ** 10:00 [Australia / Melbourne]). Java es la reducción de 1 hora para valor de desplazamiento. Sin embargo, para la segunda mitad del ahorro de luz del día (declaración-2 => 2019-10-06T 03: 00 + 11: 00 [Australia / Melbourne]), Java es la adición de 1 hora para el tiempo y 1 para compensar el valor.

Según mi entendimiento java debe aumentar 1 hora para tiempo y 1 para compensar el valor (final del horario de verano) y mientras inicio de DST y luego java debería disminuir a 1 hora de tiempo y de 1 valor de desplazamiento.

Por favor, me ayudan a obtener una aclaración respecto a las diferencias. Es java edición del 8 o mi entendimiento es incorrecto?

Joni:

En cuanto a las transiciones de horario de verano para Australia / Melbourne , el reloj nunca fue 02:00 del 10/06/2019 por el cambio de horario de verano. Así es como funciona el horario de verano: después de 01: 59: 59.999999 el reloj salta a 03: 00: 00.000000.

Esto está documentado en ZonedDateTime.of javadoc :

En el caso de una brecha, cuando los relojes saltar hacia adelante, no hay desplazamiento válido. En su lugar, la fecha, hora local se ajusta para que sea más tarde por la longitud de la brecha. Para un cambio típico hora uno de verano, la fecha, hora local, se moverá una hora más tarde en el desplazamiento general correspondiente al "verano".

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=372677&siteId=1
Recomendado
Clasificación