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. Běžné přístupy zahrnují nastavení proměnné prostředí TZ a určení vlastnosti JVM -Duser.timezone. Tento článek obsahuje stručný přehled obou metod.

Nastavení proměnné prostředí TZ

Proměnná prostředí TZ je standardní způsob nastavení časového pásma pro aplikace běžící na systémech podobných Unixu. 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ího postupu nastavte proměnnou prostředí TZ 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 prostředí TZ 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_profile, .zshrcatd.:

      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 se aplikace myapp.jar spouští v časovém pásmu Europe/London:

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

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

Při spouštění aplikací v Javě v kontejnerech můžete nastavit proměnnou prostředí TZ 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 časové pásmo America/New_York nastavením proměnné prostředí TZ a instalací balíčku tzdata:

# 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čit -Duser.timezone vlastnost 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. Tato vlastnost JVM má přednost před proměnnou prostředí TZ.

Pomocí následujícího postupu nastavte vlastnost -Duser.timezone:

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

  2. Nastavte vlastnost -Duser.timezone přidáním 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 se aplikace myapp.jar spouští 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ásem v Javě můžete použít pomocí proměnné prostředí TZ a vlastnosti -Duser.timezone JVM v jiných systémech a prostředích. 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 vašich skriptů nasazení nebo nastavení konfigurace prostředí.

Na virtuálních počítačích nastavte proměnnou prostředí TZ 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ě.