Číst v angličtině

Sdílet prostřednictvím


Konfigurace časových pásem v Javě

Časová pásma v Javě můžete nakonfigurovat různými metodami, což umožňuje aplikacím pracovat v požadovaném kontextu časového pásma. Dva běžné přístupy jsou nastavení TZ proměnné prostředí a určení vlastnosti -Duser.timezoneJVM . Tento článek obsahuje stručný přehled obou metod.

Nastavení proměnné prostředí TZ

Proměnná TZ prostředí je standardní způsob nastavení časového pásma pro aplikace běžící v operačních systémech unixových systémů. Když nastavíte tuto proměnnou, nástroj Java Virtual Machine (JVM) převezme nastavení časového pásma během spouštění.

Nastavení proměnné prostředí TZ na úrovni operačního systému

Pomocí následujících kroků nastavte proměnnou TZ prostředí na úrovni operačního systému:

  1. Identifikujte požadované časové pásmo. Časové pásmo se obvykle zadává ve formátu "Oblast/umístění", například "Amerika/New_York" nebo "Evropa/Londýn".

  2. Nastavte proměnnou TZ prostředí pomocí jedné z následujících metod:

    • V systémech Unix/Linux pomocí následujícího příkazu nastavte proměnnou v terminálu nebo v konfiguračním souboru prostředí - .bashrc, .bash_profilea .zshrctak dále:

      export TZ=America/New_York
      
    • V systémech Windows pomocí následujícího příkazu nastavte proměnnou na příkazovém řádku nebo prostřednictvím nastavení systémového prostředí:

      set TZ=America/New_York
      
  3. Restartujte aplikaci, aby JVM mohl vyzvednout nové nastavení časového pásma.

Příklad

V následujícím příkladu aplikace myapp.jar běží v časovém pásmu Europe/London :

export TZ=Europe/London
java -jar myapp.jar

Nastavení proměnné prostředí TZ v souboru Dockerfile

Při spouštění aplikací v Javě v kontejnerech můžete nastavit TZ proměnnou prostředí v souboru Dockerfile, aby se zajistilo, že kontejner běží v požadovaném časovém pásmu.

Příklad souboru Dockerfile

Následující příklad nakonfiguruje kontejner tak, aby používal America/New_York časové pásmo nastavením TZ proměnné prostředí a instalací tzdata balíčku:

# 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"]

Nastavení vlastnosti JVM -Duser.timezone

Další metodou konfigurace časového pásma v Javě je určení -Duser.timezone vlastnosti při spuštění prostředí JVM. Tato metoda je nezávislá na platformě a umožňuje nastavit časové pásmo přímo z příkazového řádku nebo v rámci skriptů aplikace.

K nastavení -Duser.timezone vlastnosti použijte následující postup:

  1. Identifikujte požadované časové pásmo. TZ Podobně jako proměnná prostředí je časové pásmo zadáno ve formátu "Oblast/umístění".

  2. -Duser.timezone Vlastnost nastavte tak, že ji přidáte do příkazového řádku Java při spuštění aplikace, jak je znázorněno v následujícím příkladu:

    java -Duser.timezone=America/New_York -jar myapp.jar
    

Příklad

V následujícím příkladu aplikace myapp.jar běží v časovém pásmu Asia/Tokyo :

java -Duser.timezone=Asia/Tokyo -jar myapp.jar

Jiné systémy a prostředí

Principy konfigurace časových pásma v Javě můžete použít pomocí TZ proměnné prostředí a -Duser.timezone vlastnosti JVM pro jiné systémy a prostředí. Bez ohledu na to, jestli spouštíte aplikace na cloudových platformách, v rámci virtuálních počítačů nebo v různých systémech orchestrace kontejnerů, můžete stejnými metodami zajistit, aby vaše aplikace v Javě fungovaly ve správném kontextu časového pásma.

Na cloudových platformách nakonfigurujte TZ proměnnou prostředí nebo vlastnost JVM v rámci skriptů nasazení nebo nastavení konfigurace prostředí.

Na virtuálních počítačích nastavte proměnnou TZ prostředí v prostředí virtuálního počítače nebo ve spouštěcích skriptech aplikace použijte vlastnost JVM.

Při orchestraci kontejnerů použijte příklad souboru Dockerfile pro kontejnerizované aplikace, abyste zajistili, že jsou data časového pásma dostupná a správně nastavená.

Pomocí těchto principů můžete dosáhnout konzistentní konfigurace časového pásma napříč různými prostředími nasazení pro vaše aplikace v Javě.