İngilizce dilinde oku

Aracılığıyla paylaş


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.timezonebelirtmektir. 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

Ortam değişkenini TZ işletim sistemi düzeyinde ayarlamak için aşağıdaki adımları kullanın:

  1. İstenen saat dilimini belirleyin. Saat dilimleri genellikle "Amerika/New_York" veya "Avrupa/Londra" gibi "Alan/Konum" biçiminde belirtilir.

  2. 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, .zshrcve 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
      
  3. JVM'nin yeni saat dilimi ayarını alabilmesi için uygulamayı yeniden başlatın.

Örnek

Aşağıdaki örnekte uygulama myapp.jar saat diliminde Europe/London ç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 TZ istenen saat diliminde çalıştığından emin olmak için Dockerfile içindeki ortam değişkenini ayarlayabilirsiniz.

Dockerfile örneği

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"]

JVM özelliğini ayarlama -Duser.timezone

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:

  1. İstenen saat dilimini belirleyin. Ortam değişkenine TZ benzer şekilde, saat dilimi "Alan/Konum" biçiminde belirtilir.

  2. -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
    

Örnek

Aşağıdaki örnekte uygulama myapp.jar saat diliminde Asia/Tokyo çalışır:

java -Duser.timezone=Asia/Tokyo -jar myapp.jar

Diğer sistemler ve ortamlar

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.