Megosztás a következőn keresztül:


Időzónák konfigurálása Java-ban

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:

  1. 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".

  2. Állítsa be a TZ kö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_York
      
    • Windows 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
      
  3. 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:

  1. Azonosítsa a kívánt időzónát. A TZ környezeti változóhoz hasonlóan az időzónát a "Terület/hely" formátum adja meg.

  2. Állítsa be a -Duser.timezone tulajdonsá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.