Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Java-ban különböző módszerekkel konfigurálhatja az időzónákat, így az alkalmazások a kívánt időzónában működhetnek. Két gyakori módszer a TZ környezeti változó beállítása és a JVM tulajdonság -Duser.timezonemegadása. Ez a cikk rövid áttekintést nyújt mindkét módszerről.
A TZ környezeti változó beállítása
A TZ környezeti változó szabványos módszer a Unix-szerű operációs rendszereken futó alkalmazások időzónájának beállítására. A változó beállításakor a Java Virtual Machine (JVM) az indítás során felveszi az időzónát.
A TZ környezeti változó beállítása operációs rendszer szintjén
A TZ környezeti változót az alábbi lépésekkel állíthatja be az operációs rendszer szintjén:
Azonosítsa a kívánt időzónát. Az időzónák általában "Terület/hely" formátumban vannak megadva, például "Amerika/New_York" vagy "Európa/London".
Állítsa be a
TZkörnyezeti változót az alábbi módszerek egyikével:Unix/Linux rendszereken a következő paranccsal állíthatja be a változót a terminálban vagy a rendszerhéj konfigurációs fájljában –
.bashrc,.bash_profile,.zshrcstb.:export TZ=America/New_YorkWindows rendszereken a következő paranccsal állítsa be a változót a parancssorban vagy a rendszerkörnyezet beállításain keresztül:
set TZ=America/New_York
Indítsa újra az alkalmazást, hogy a JVM átvehesse az új időzón-beállítást.
Példa
Az alábbi példában az alkalmazás myapp.jar a Europe/London időzónában fut:
export TZ=Europe/London
java -jar myapp.jar
A TZ környezeti változó beállítása Docker-fájlban
Ha Java-alkalmazásokat futtat tárolókban, beállíthatja a TZ környezeti változót a Dockerfile-ban, hogy a tároló a kívánt időzónában fusson.
Dockerfile példa
Az alábbi példa úgy konfigurálja a tárolót, hogy az America/New_York időzónát használja a TZ környezeti változó beállításával és a tzdata csomag telepítésével:
# 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"]
A JVM tulajdonság beállítása -Duser.timezone
A Java időzónájának konfigurálására egy másik módszer az -Duser.timezone tulajdonság megadása a JVM indításakor. Ez a módszer platformfüggetlen, és lehetővé teszi az időzónák beállítását közvetlenül a parancssorból vagy az alkalmazásszkripteken belül. Ez a JVM tulajdonság elsőbbséget élvez a TZkörnyezeti változóval szemben.
A -Duser.timezone tulajdonság beállításához kövesse az alábbi lépéseket:
Azonosítsa a kívánt időzónát. A
TZkörnyezeti változóhoz hasonlóan az időzónát a "Terület/hely" formátum adja meg.Állítsa be a
-Duser.timezonetulajdonságot úgy, hogy hozzáadja azt a Java parancssorhoz az alkalmazás indításakor, ahogyan az az alábbi példában látható:java -Duser.timezone=America/New_York -jar myapp.jar
Példa
Az alábbi példában az alkalmazás myapp.jar a Asia/Tokyo időzónában fut:
java -Duser.timezone=Asia/Tokyo -jar myapp.jar
Egyéb rendszerek és környezetek
A Java-ban az időzónák konfigurálásának alapelveit a TZ környezeti változó és a -Duser.timezone JVM tulajdonság használatával más rendszerekre és környezetekre is alkalmazhatja. Függetlenül attól, hogy felhőplatformokon, virtuális gépeken (virtuális gépeken) vagy különböző tárolóvezénylési rendszereken futtat alkalmazásokat, ugyanezekkel a módszerekkel biztosíthatja, hogy a Java-alkalmazások a megfelelő időzóna-környezetben működjenek.
Felhőplatformokon konfigurálja a TZ környezeti változót vagy JVM-tulajdonságot az üzembehelyezési szkripteken vagy a környezetkonfigurációs beállításokon belül.
Virtuális gépeken állítsa be a TZ környezeti változót a virtuális gép környezetében, vagy használja a JVM tulajdonságot az alkalmazás indítási szkriptjeiben.
Tárolóvezénylés esetén használja a Dockerfile-példát a tárolóalapú alkalmazásokhoz, biztosítva, hogy az időzónák adatai elérhetők és megfelelően legyenek beállítva.
Az alapelvek követésével konzisztens időzón-konfigurációt érhet el a Java-alkalmazások különböző üzembehelyezési környezetei között.