Delen via


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:

  1. Identificeer de gewenste tijdzone. Tijdzones worden doorgaans opgegeven in de indeling 'Area/Location', zoals 'Amerika/New_York' of 'Europa/Londen'.

  2. 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, .zshrcenzovoort:

      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
      
  3. 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:

  1. Identificeer de gewenste tijdzone. Net als bij de omgevingsvariabele TZ wordt de tijdzone opgegeven in de indeling Gebied/Locatie.

  2. 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.