Java'da saat dilimlerini yapılandırma
Java'da saat dilimlerini çeşitli yöntemlerle yapılandırarak uygulamaların istenen saat dilimi bağlamında çalışmasına olanak sağlayabilirsiniz. İki yaygın yaklaşım, ortam değişkenini TZ
ayarlamak ve JVM özelliğini -Duser.timezone
belirtmektir. Bu makalede her iki yönteme de kısa bir genel bakış sağlanır.
TZ
Ortam değişkeni, Unix benzeri işletim sistemlerinde çalışan uygulamalar için saat dilimini ayarlamanın standart bir yoludur. Bu değişkeni ayarladığınızda Java Sanal Makinesi (JVM), başlangıç sırasında saat dilimi ayarını alır.
Ortam değişkenini TZ
işletim sistemi düzeyinde ayarlamak için aşağıdaki adımları kullanın:
İstenen saat dilimini belirleyin. Saat dilimleri genellikle "Amerika/New_York" veya "Avrupa/Londra" gibi "Alan/Konum" biçiminde belirtilir.
Ortam değişkenini
TZ
aşağıdaki yöntemlerden birini kullanarak ayarlayın:Unix/Linux sistemlerinde, terminalde veya kabuk yapılandırma dosyanızda değişkenini ayarlamak için aşağıdaki komutu kullanın:
.bashrc
,.bash_profile
,.zshrc
ve benzeri:export TZ=America/New_York
Windows sistemlerinde, komut isteminde veya sistem ortamı ayarları aracılığıyla değişkeni ayarlamak için aşağıdaki komutu kullanın:
set TZ=America/New_York
JVM'nin yeni saat dilimi ayarını alabilmesi için uygulamayı yeniden başlatın.
Aşağıdaki örnekte uygulama myapp.jar saat diliminde Europe/London
çalışır:
export TZ=Europe/London
java -jar myapp.jar
Kapsayıcılarda Java uygulamaları çalıştırdığınızda, kapsayıcının TZ
istenen saat diliminde çalıştığından emin olmak için Dockerfile içindeki ortam değişkenini ayarlayabilirsiniz.
Aşağıdaki örnek, ortam değişkenini ayarlayıp paketi yükleyerek kapsayıcıyı TZ
saat dilimini kullanacak America/New_York
şekilde yapılandırırtzdata
:
# 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"]
Java'da saat dilimini yapılandırmanın bir diğer yöntemi de JVM'yi başlatırken özelliğini belirtmektir -Duser.timezone
. Bu yöntem platformdan bağımsızdır ve saat dilimini doğrudan komut satırından veya uygulama betiklerinden ayarlamaya olanak tanır.
Özelliğini ayarlamak -Duser.timezone
için aşağıdaki adımları kullanın:
İstenen saat dilimini belirleyin. Ortam değişkenine
TZ
benzer şekilde, saat dilimi "Alan/Konum" biçiminde belirtilir.-Duser.timezone
Aşağıdaki örnekte gösterildiği gibi uygulamayı başlatırken Java komut satırına ekleyerek özelliğini ayarlayın:java -Duser.timezone=America/New_York -jar myapp.jar
Aşağıdaki örnekte uygulama myapp.jar saat diliminde Asia/Tokyo
çalışır:
java -Duser.timezone=Asia/Tokyo -jar myapp.jar
Ortam değişkenini ve JVM özelliğini kullanarak TZ
Java'da saat dilimlerini yapılandırma ilkelerini diğer sistemlere ve -Duser.timezone
ortamlara uygulayabilirsiniz. Uygulamaları bulut platformlarında, sanal makinelerde (VM) veya çeşitli kapsayıcı düzenleme sistemlerinde çalıştırdığınızda, Java uygulamalarınızın doğru saat dilimi bağlamında çalıştığından emin olmak için aynı yöntemleri kullanabilirsiniz.
Bulut platformlarında, dağıtım betiklerinizde veya ortam yapılandırma ayarlarınızda ortam değişkenini veya JVM özelliğini yapılandırın TZ
.
Sanal makinelerde, SANAL makinenizin ortamında ortam değişkenini ayarlayın TZ
veya uygulama başlatma betiklerinizde JVM özelliğini kullanın.
Kapsayıcı düzenlemesi ile kapsayıcılı uygulamalar için Dockerfile örneğini kullanarak saat dilimi verilerinin kullanılabilir ve doğru ayarlandığından emin olun.
Bu ilkeleri izleyerek Java uygulamalarınız için farklı dağıtım ortamlarında tutarlı saat dilimi yapılandırması elde edebilirsiniz.