Tijdzones configureren in Java
U kunt tijdzones in Java configureren via verschillende methoden, zodat toepassingen in de gewenste tijdzonecontext kunnen werken. Twee algemene benaderingen zijn het instellen van de TZ
omgevingsvariabele en het opgeven van de JVM-eigenschap -Duser.timezone
. Dit artikel bevat een kort overzicht van beide methoden.
De omgevingsvariabele TZ instellen
De omgevingsvariabele TZ
is een standaardmethode om de tijdzone in te stellen voor toepassingen die worden uitgevoerd op Unix-achtige besturingssystemen. Wanneer u deze variabele instelt, haalt de Java Virtual Machine (JVM) de tijdzone-instelling op tijdens het opstarten.
De omgevingsvariabele TZ instellen op besturingssysteemniveau
Gebruik de volgende stappen om de omgevingsvariabele TZ
in te stellen op besturingssysteemniveau:
Identificeer de gewenste tijdzone. Tijdzones worden doorgaans opgegeven in de indeling 'Area/Location', zoals 'Amerika/New_York' of 'Europa/Londen'.
Stel de omgevingsvariabele
TZ
in met een van de volgende methoden:Gebruik op Unix-/Linux-systemen de volgende opdracht om de variabele in te stellen in de terminal of in uw shellconfiguratiebestand:
.bashrc
,.bash_profile
,.zshrc
enzovoort:export TZ=America/New_York
Gebruik op Windows-systemen de volgende opdracht om de variabele in te stellen in de opdrachtprompt of via de systeemomgevingsinstellingen:
set TZ=America/New_York
Start de toepassing opnieuw zodat de JVM de nieuwe tijdzone-instelling kan ophalen.
Voorbeeld
In het volgende voorbeeld wordt de toepassing myapp.jar uitgevoerd in de Europe/London
tijdzone:
export TZ=Europe/London
java -jar myapp.jar
De TZ-omgevingsvariabele instellen in een Dockerfile
Wanneer u Java-toepassingen uitvoert in containers, kunt u de omgevingsvariabele TZ
instellen in de Dockerfile om ervoor te zorgen dat de container wordt uitgevoerd in de gewenste tijdzone.
Dockerfile-voorbeeld
In het volgende voorbeeld wordt de container geconfigureerd voor het gebruik van de America/New_York
tijdzone door de TZ
omgevingsvariabele in te stellen en het tzdata
-pakket te installeren:
# 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"]
De JVM-eigenschap instellen -Duser.timezone
Een andere methode voor het configureren van de tijdzone in Java is het opgeven van de eigenschap -Duser.timezone
bij het starten van de JVM. Deze methode is platformonafhankelijk en schakelt het instellen van de tijdzone rechtstreeks vanuit de opdrachtregel of binnen toepassingsscripts in. Deze JVM-eigenschap heeft voorrang op de omgevingsvariabele TZ
.
Gebruik de volgende stappen om de eigenschap -Duser.timezone
in te stellen:
Identificeer de gewenste tijdzone. Net als bij de omgevingsvariabele
TZ
wordt de tijdzone opgegeven in de indeling Gebied/Locatie.Stel de eigenschap
-Duser.timezone
in door deze toe te voegen aan de Java-opdrachtregel bij het starten van de toepassing, zoals wordt weergegeven in het volgende voorbeeld:java -Duser.timezone=America/New_York -jar myapp.jar
Voorbeeld
In het volgende voorbeeld wordt de toepassing myapp.jar uitgevoerd in de Asia/Tokyo
tijdzone:
java -Duser.timezone=Asia/Tokyo -jar myapp.jar
Andere systemen en omgevingen
U kunt de principes van het configureren van tijdzones in Java toepassen met behulp van de TZ
omgevingsvariabele en de eigenschap -Duser.timezone
JVM op andere systemen en omgevingen. Ongeacht of u toepassingen uitvoert op cloudplatforms, binnen virtuele machines (VM's) of in verschillende containerindelingssystemen, kunt u dezelfde methoden gebruiken om ervoor te zorgen dat uw Java-toepassingen werken in de juiste tijdzonecontext.
Configureer op cloudplatforms de TZ
omgevingsvariabele of JVM-eigenschap binnen uw implementatiescripts of omgevingsconfiguratie-instellingen.
Stel op virtuele machines de omgevingsvariabele TZ
in de omgeving van uw VM in of gebruik de JVM-eigenschap in de opstartscripts van uw toepassing.
Gebruik met containerindeling het Dockerfile-voorbeeld voor toepassingen in containers, zodat de tijdzonegegevens beschikbaar zijn en correct zijn ingesteld.
Door deze principes te volgen, kunt u een consistente tijdzoneconfiguratie bereiken in verschillende implementatieomgevingen voor uw Java-toepassingen.