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:
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".
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
,.zshrc
atd.: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
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
:
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í.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ě.