Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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, TZ
ortam değişkenini ayarlamak ve -Duser.timezone
JVM özelliğini belirtmektir. Bu makalede her iki yönteme de kısa bir genel bakış sağlanır.
TZ ortam değişkenini ayarlama
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.
TZ ortam değişkenini işletim sistemi düzeyinde ayarlama
TZ
ortam değişkenini 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.
Aşağıdaki yöntemlerden birini kullanarak
TZ
ortam değişkenini ayarlayın:Unix/Linux sistemlerinde, terminalde veya kabuk yapılandırma dosyanızda değişkeni 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.
Örnek
Aşağıdaki örnekte, uygulama myapp.jarEurope/London
saat diliminde çalışır:
export TZ=Europe/London
java -jar myapp.jar
Dockerfile'da TZ ortam değişkenini ayarlama
Kapsayıcılarda Java uygulamaları çalıştırdığınızda, kapsayıcının istenen saat diliminde çalıştığından emin olmak için Dockerfile içindeki TZ
ortam değişkenini ayarlayabilirsiniz.
Dockerfile örneği
Aşağıdaki örnek, America/New_York
ortam değişkenini ayarlayarak ve TZ
paketini yükleyerek kapsayıcıyı tzdata
saat dilimini kullanacak şekilde yapılandırır:
# 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"]
JVM özelliğini -Duser.timezone
ayarlama
Java'da saat dilimini yapılandırmanın başka bir yöntemi de JVM'yi başlatırken -Duser.timezone
özelliğini belirtmektir. Bu yöntem platformdan bağımsızdır ve saat dilimini doğrudan komut satırından veya uygulama betiklerinden ayarlamaya olanak tanır. Bu JVM özelliği, TZ
ortam değişkenine göre önceliklidir.
-Duser.timezone
özelliğini ayarlamak için aşağıdaki adımları kullanın:
İstenen saat dilimini belirleyin.
TZ
ortam değişkenine benzer şekilde, saat dilimi "Alan/Konum" biçiminde belirtilir.Aşağıdaki örnekte gösterildiği gibi uygulamayı başlatırken Java komut satırına ekleyerek
-Duser.timezone
özelliğini ayarlayın:java -Duser.timezone=America/New_York -jar myapp.jar
Örnek
Aşağıdaki örnekte, uygulama myapp.jarAsia/Tokyo
saat diliminde çalışır:
java -Duser.timezone=Asia/Tokyo -jar myapp.jar
Diğer sistemler ve ortamlar
TZ
ortam değişkenini ve -Duser.timezone
JVM özelliğini kullanarak Java'da saat dilimlerini yapılandırma ilkelerini diğer sistemlere ve 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 betikleriniz veya ortam yapılandırma ayarlarınız içinde TZ
ortam değişkenini veya JVM özelliğini yapılandırın.
Sanal makinelerde, SANAL makinenizin ortamında TZ
ortam değişkenini ayarlayın veya uygulama başlangıç betiklerinizde JVM özelliğini kullanın.
Kapsayıcı düzenleme kullanarak, kapsayıcılı uygulamalar için Dockerfile örneğini kullanın ve 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.