Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan konfigurera tidszoner i Java via olika metoder, vilket gör att program kan användas i önskad tidszonskontext. Två vanliga metoder är att ange TZ miljövariabeln och ange JVM-egenskapen -Duser.timezone. Den här artikeln innehåller en kort översikt över båda metoderna.
Ange TZ-miljövariabeln
Miljövariabeln TZ är ett standard sätt att ange tidszonen för program som körs på Unix-liknande operativsystem. När du ställer in den här variabeln hämtar Java Virtual Machine (JVM) tidszonsinställningen under starten.
Ange TZ-miljövariabeln på os-nivå
Använd följande steg för att ange TZ miljövariabeln på operativsystemnivå:
Identifiera önskad tidszon. Tidszoner anges vanligtvis i formatet "Area/Location", till exempel "America/New_York" eller "Europe/London".
Ange
TZmiljövariabeln med någon av följande metoder:I Unix/Linux-system använder du följande kommando för att ange variabeln i terminalen eller i gränssnittskonfigurationsfilen –
.bashrc,.bash_profile,.zshrcoch så vidare:export TZ=America/New_YorkI Windows-system använder du följande kommando för att ange variabeln i kommandotolken eller via systemmiljöinställningar:
set TZ=America/New_York
Starta om programmet så att JVM kan hämta den nya tidszonsinställningen.
Exempel
I följande exempel körs programmet myapp.jar i Europe/London tidszon:
export TZ=Europe/London
java -jar myapp.jar
Ange TZ-miljövariabeln i en Dockerfile
När du kör Java-program i containrar kan du ange TZ miljövariabeln i Dockerfile för att säkerställa att containern körs i önskad tidszon.
Dockerfile-exempel
I följande exempel konfigureras containern att använda America/New_York tidszon genom att ange TZ miljövariabeln och installera tzdata-paketet:
# 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"]
Ange JVM-egenskapen -Duser.timezone
En annan metod för att konfigurera tidszonen i Java är att ange egenskapen -Duser.timezone när JVM startas. Den här metoden är plattformsoberoende och aktiverar inställning av tidszonen direkt från kommandoraden eller i programskript. Den här JVM-egenskapen har företräde framför miljövariabeln TZ.
Använd följande steg för att ange egenskapen -Duser.timezone:
Identifiera önskad tidszon. På samma sätt som miljövariabeln
TZanges tidszonen i formatet "Område/plats".Ange egenskapen
-Duser.timezonegenom att lägga till den på Java-kommandoraden när du startar programmet, som du ser i följande exempel:java -Duser.timezone=America/New_York -jar myapp.jar
Exempel
I följande exempel körs programmet myapp.jar i Asia/Tokyo tidszon:
java -Duser.timezone=Asia/Tokyo -jar myapp.jar
Andra system och miljöer
Du kan använda principerna för att konfigurera tidszoner i Java med hjälp av TZ miljövariabeln och -Duser.timezone JVM-egenskapen för andra system och miljöer. Oavsett om du kör program på molnplattformar, på virtuella datorer eller i olika containerorkestreringssystem kan du använda samma metoder för att säkerställa att dina Java-program fungerar i rätt tidszonskontext.
På molnplattformar konfigurerar du TZ miljövariabeln eller JVM-egenskapen i dina distributionsskript eller miljökonfigurationsinställningar.
På virtuella datorer anger du miljövariabeln TZ i den virtuella datorns miljö eller använder JVM-egenskapen i programstartskripten.
Med containerorkestrering använder du Dockerfile-exemplet för containerbaserade program, vilket säkerställer att tidszonsdata är tillgängliga och korrekt inställda.
Genom att följa dessa principer kan du uppnå konsekvent tidszonskonfiguration i olika distributionsmiljöer för dina Java-program.