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:
Identifizieren Sie die gewünschte Zeitzone. Zeitzonen werden in der Regel im Format "Area/Location" angegeben, z. B. "America/New_York" oder "Europe/London".
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
,.zshrc
usw.: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
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:
Identifizieren Sie die gewünschte Zeitzone. Ähnlich wie die
TZ
Umgebungsvariable wird die Zeitzone im Format "Area/Location" angegeben.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.