Freigeben über


Konfigurieren von Zeitzonen in Java

Sie können Zeitzonen in Java mit verschiedenen Methoden konfigurieren, so dass Anwendungen im gewünschten Zeitzonenkontext ausgeführt werden können. Zwei gängige Ansätze sind das Festlegen der Umgebungsvariable TZ und die Angabe der JVM-Eigenschaft -Duser.timezone. Dieser Artikel gibt einen kurzen Überblick über beide Methoden.

Festlegen der Umgebungsvariable TZ

Die Umgebungsvariable TZ ist eine Standardmethode zum Festlegen der Zeitzone für Anwendungen, die auf Unix-ähnlichen Betriebssystemen ausgeführt werden. Wenn Sie diese Variable festlegen, übernimmt die Java VM (JVM) die Einstellung der Zeitzone beim Start.

Festlegen der Umgebungsvariablen TZ auf Betriebssystemebene

Gehen Sie wie folgt vor, um die Umgebungsvariable TZ auf der Betriebssystemebene festzulegen:

  1. Identifizieren Sie die gewünschte Zeitzone. Zeitzonen werden normalerweise im Format „Gebiet/Ort“ angegeben, z. B. „Amerika/New_York“ oder „Europa/London“.

  2. Legen Sie die Umgebungsvariable TZ mit einer der folgenden Methoden fest:

    • Auf Unix/Linux-Systemen verwenden Sie den folgenden Befehl, um die Variable im Terminal oder in Ihrer Shell-Konfigurationsdatei festzulegen – .bashrc, .bash_profile, .zshrc usw.:

      export TZ=America/New_York
      
    • Auf Windows-Systemen verwenden Sie den folgenden Befehl, um die Variable in der Eingabeaufforderung oder über die Systemumgebungseinstellungen festzulegen:

      set TZ=America/New_York
      
  3. Starten Sie die Anwendung neu, damit die JVM die neue Zeitzoneneinstellung registrieren kann.

Beispiel

Im folgenden Beispiel läuft die Anwendung myapp.jar in der Zeitzone Europe/London:

export TZ=Europe/London
java -jar myapp.jar

Festlegen der Umgebungsvariable TZ in einem Dockerfile

Wenn Sie Java-Anwendungen in Containern ausführen, können Sie die Umgebungsvariable TZ innerhalb des Dockerfiles festlegen, um sicherzustellen, dass der Container in der gewünschten Zeitzone ausgeführt wird.

Dockerfile-Beispiel

Im folgenden Beispiel wird der Container für die Verwendung der Zeitzone America/New_York konfiguriert, indem die Umgebungsvariable TZ festgelegt und das Paket tzdata installiert wird:

# Use a base image with Java installed
FROM mcr.microsoft.com/openjdk/jdk:21-mariner

# Set the timezone environment variable
ENV TZ=America/New_York

# Set the working directory
WORKDIR /app

# Copy the application JAR file to the container
COPY myapp.jar /app/myapp.jar

# Run the application
CMD ["java", "-jar", "myapp.jar"]

Festlegen der JVM-Eigenschaft -Duser.timezone

Eine andere Methode, die Zeitzone in Java zu konfigurieren, besteht darin, die Eigenschaft -Duser.timezone beim Starten der JVM anzugeben. Diese Methode ist plattformunabhängig und ermöglicht es, die Zeitzone direkt über die Befehlszeile oder innerhalb von Anwendungsskripten einzustellen.

Gehen Sie wie folgt vor, um die Eigenschaft -Duser.timezone festzulegen:

  1. Identifizieren Sie die gewünschte Zeitzone. Ähnlich wie die Umgebungsvariable TZ wird auch die Zeitzone im Format „Gebiet/Ort“ angegeben.

  2. Legen Sie die Eigenschaft -Duser.timezone fest, indem Sie sie beim Starten der Anwendung zur Java-Befehlszeile hinzufügen, wie im folgenden Beispiel gezeigt:

    java -Duser.timezone=America/New_York -jar myapp.jar
    

Beispiel

Im folgenden Beispiel läuft die Anwendung myapp.jar in der Zeitzone Asia/Tokyo:

java -Duser.timezone=Asia/Tokyo -jar myapp.jar

Andere Systeme und Umgebungen

Sie können die Prinzipien der Konfiguration von Zeitzonen in Java mit Hilfe der Umgebungsvariablen TZ und der JVM-Eigenschaft -Duser.timezone auf andere Systeme und Umgebungen übertragen. Unabhängig davon, ob Sie Anwendungen auf Cloud-Plattformen, auf virtuellen Computern (VMs) oder in verschiedenen Containerorchestrierungssystemen ausführen, können Sie mit denselben Methoden sicherstellen, dass Ihre Java-Anwendungen im richtigen Zeitzonenkontext ausgeführt werden.

Auf Cloudplattformen konfigurieren Sie die Umgebungsvariable TZ oder die JVM-Eigenschaft in Ihren Skripten für die Bereitstellung oder in den Einstellungen für die Umgebungskonfiguration.

Auf VMs legen Sie die Umgebungsvariable TZ in der Umgebung Ihrer VM fest oder verwenden die JVM-Eigenschaft in den Startskripten Ihrer Anwendungen.

Verwenden Sie bei der Containerorchestrierung das Dockerfile-Beispiel für containerisierte Anwendungen und stellen Sie sicher, dass die Zeitzonendaten verfügbar und korrekt eingestellt sind.

Wenn Sie diese Grundsätze befolgen, können Sie eine konsistente Zeitzonenkonfiguration in verschiedenen Bereitstellungsumgebungen für Ihre Java-Anwendungen erreichen.