Hora CET em Java
Em todo o mundo, existem mais de 190 países, onde cada país segue um determinado fuso horário. Esses fusos horários atuam como regras que são cruciais para expressar o tempo de maneira muito conveniente e eficaz. No entanto, esses fusos horários podem ser inexplicáveis devido a certas variáveis, como o horário de verão.
Java nos forneceu várias classes que lidam com fusos horários. Com novas versões do Java surgindo, ele veio com classes muito mais extensas e úteis, como ZoneId
e ZoneOffset
.
Com o surgimento da JSR-310, algumas APIs novas e muito mais produtivas foram adicionadas para o gerenciamento de fusos horários. ZoneId
foi uma dessas classes adicionadas. É uma representação de um fuso horário como Europe/Berlin
.
A maioria dos deslocamentos fixos são representados por ZoneOffset
. Podemos garantir, chamando normalized()
em qualquer ZoneId
, que um ID de deslocamento fixo será representado como ZoneOffset
.
A definição de CET da IANA diz que ela segue as regras de fuso horário da Europa Central, que inclui tanto o verão quanto o inverno.
Deve-se entender que o identificador de fuso horário e o nome abreviado desse identificador são dois elementos diferentes. O nome pode mudar entre CET
e CEST
, mas o identificador é sempre fixado como CET
.
Podemos obter a funcionalidade relacionada ao fuso horário CET
usando a função getRules()
. Ele pode transmitir o deslocamento em um determinado momento.
Veja o seguinte código.
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
ZoneId zone = ZoneId.of("CET");
System.out.println("Zone Name: " + zone);
System.out.println("Offset " + zone.getRules());
}
}
Resultado:
Zone Name: CET
Offset ZoneRules[currentStandardOffset=+01:00]
Outra maneira pode ser usar ZoneOffset.ofHours(1)
em vez de usar ZoneId.of("CET")
. Podemos obter o total de transições e regras para a transição usando getTransitions()
e getTransitionRules()
.