CET-Zeit in Java

Hiten Kanwar 12 Oktober 2023
CET-Zeit in Java

Auf der ganzen weiten Welt gibt es über 190 Länder, in denen jedes Land einer bestimmten Zeitzone folgt. Diese Zeitzonen fungieren als Regeln, die entscheidend sind, um die Zeit sowohl bequem als auch effektiv auszudrücken. Diese Zeitzonen können sich jedoch aufgrund bestimmter Variablen wie der Sommerzeit als nicht explizit erweisen.

Java hat uns mehrere Klassen zur Verfügung gestellt, die Zeitzonen behandeln. Mit neuen Java-Versionen kamen viel umfangreichere und nützlichere Klassen wie ZoneId und ZoneOffset auf den Markt.

Mit dem Aufkommen von JSR-310 wurden einige neue und viel produktivere APIs für die Verwaltung von Zeit und Zeitzonen hinzugefügt. ZoneId wurde eine solche Klasse hinzugefügt. Es ist eine Darstellung einer Zeitzone wie Europa/Berlin.

Die meisten festen Offsets werden durch ZoneOffset repräsentiert. Durch Aufruf von normalized() auf einer beliebigen ZoneId können wir sicherstellen, dass eine feste Offset-ID als ZoneOffset dargestellt wird.

Die IANA-Definition von MEZ besagt, dass sie den Zeitzonenregeln Mitteleuropas folgt, die sowohl die Sommer- als auch die Winterzeit umfassen.

Man sollte verstehen, dass die Zeitzonenkennung und der Kurzname dieser Kennung zwei verschiedene Elemente sind. Der Name kann zwischen CET und CEST wechseln, die Kennung ist jedoch immer auf CET festgelegt.

Wir können die Funktionalität in Bezug auf die Zeitzone CET mit der Funktion getRules() abrufen. Es kann den Offset zum gegebenen Zeitpunkt übermitteln.

Siehe den folgenden Code.

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());
  }
}

Ausgabe:

Zone Name: CET
Offset ZoneRules[currentStandardOffset=+01:00]

Eine andere Möglichkeit könnte darin bestehen, ZoneOffset.ofHours(1) anstelle von ZoneId.of("CET") zu verwenden. Die Gesamtzahl der Übergänge und Regeln für den Übergang können wir mit getTransitions() und getTransitionRules() ermitteln.

Verwandter Artikel - Java Time