Freigeben über


Konfigurieren von Zeitzonen in Java

Sie können Zeitzonen in Java über verschiedene Methoden konfigurieren, sodass Anwendungen im gewünschten Zeitzonenkontext arbeiten können. Zwei gängige Ansätze sind das Festlegen der TZ Umgebungsvariablen und das Angeben der JVM-Eigenschaft -Duser.timezone. Dieser Artikel enthält eine kurze Übersicht über beide Methoden.

Festlegen der Umgebungsvariable TZ

Die TZ Umgebungsvariable ist eine Standardmethode zum Festlegen der Zeitzone für Anwendungen, die auf Unix-ähnlichen Betriebssystemen ausgeführt werden. Wenn Sie diese Variable festlegen, nimmt der virtuelle Java-Computer (JVM) die Zeitzoneneinstellung während des Starts auf.

Setzen Sie die TZ-Umgebungsvariable auf Betriebssystemebene fest

Führen Sie die folgenden Schritte aus, um die umgebungsvariable TZ auf Betriebssystemebene festzulegen:

  1. Identifizieren Sie die gewünschte Zeitzone. Zeitzonen werden in der Regel im Format "Area/Location" angegeben, z. B. "America/New_York" oder "Europe/London".

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

    • Verwenden Sie auf Unix/Linux-Systemen den folgenden Befehl, um die Variable im Terminal oder in Ihrer Shell-Konfigurationsdatei festzulegen – .bashrc, .bash_profile, .zshrcusw.:

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

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

Beispiel

Im folgenden Beispiel wird die Anwendung myapp.jar in der zeitzone Europe/London ausgeführt:

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 TZ Umgebungsvariable innerhalb der Dockerfile-Datei festlegen, um sicherzustellen, dass der Container in der gewünschten Zeitzone ausgeführt wird.

Dockerfile-Beispiel

Im folgenden Beispiel wird der Container so konfiguriert, dass die America/New_York Zeitzone verwendet wird, 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 weitere Methode zum Konfigurieren der Zeitzone in Java ist das Angeben der -Duser.timezone-Eigenschaft beim Starten des JVM. Diese Methode ist plattformunabhängig und ermöglicht das Festlegen der Zeitzone direkt über die Befehlszeile oder in Anwendungsskripts. Diese JVM-Eigenschaft hat Vorrang vor der Umgebungsvariablen TZ.

Führen Sie die folgenden Schritte aus, um die eigenschaft -Duser.timezone festzulegen:

  1. Identifizieren Sie die gewünschte Zeitzone. Ähnlich wie die TZ Umgebungsvariable wird die Zeitzone im Format "Area/Location" angegeben.

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

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

Beispiel

Im folgenden Beispiel wird die Anwendung myapp.jar in der zeitzone Asia/Tokyo ausgeführt:

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

Andere Systeme und Umgebungen

Sie können die Prinzipien der Konfiguration von Zeitzonen in Java mithilfe der TZ Umgebungsvariablen und der -Duser.timezone JVM-Eigenschaft auf andere Systeme und Umgebungen anwenden. Unabhängig davon, ob Sie Anwendungen auf Cloudplattformen, auf virtuellen Computern (VMs) oder in verschiedenen Container-Orchestrierungssystemen ausführen, können Sie dieselben Methoden verwenden, um sicherzustellen, dass Ihre Java-Anwendungen im richtigen Zeitzonenkontext funktionieren.

Konfigurieren Sie auf Cloudplattformen die TZ-Umgebungsvariable oder die JVM-Eigenschaft innerhalb Ihrer Bereitstellungsskripte oder Konfigurationseinstellungen der Umgebung.

Legen Sie auf virtuellen Computern die TZ Umgebungsvariable in der Umgebung Ihrer VM fest, oder verwenden Sie die JVM-Eigenschaft in Ihren Anwendungsstartskripts.

Verwenden Sie bei der Container-Orchestrierung das Dockerfile-Beispiel für containerisierte Anwendungen, um sicherzustellen, dass die Zeitzonendaten verfügbar und ordnungsgemäß festgelegt sind.

Anhand dieser Prinzipien können Sie eine konsistente Zeitzonenkonfiguration in verschiedenen Bereitstellungsumgebungen für Ihre Java-Anwendungen erzielen.