Bagikan melalui


Mengonfigurasi zona waktu di Java

Anda dapat mengonfigurasi zona waktu di Java melalui berbagai metode, memungkinkan aplikasi beroperasi dalam konteks zona waktu yang diinginkan. Dua pendekatan umum adalah mengatur variabel lingkungan TZ dan menentukan properti JVM -Duser.timezone. Artikel ini memberikan gambaran singkat tentang kedua metode.

Mengatur variabel lingkungan TZ

Variabel lingkungan TZ adalah cara standar untuk mengatur zona waktu untuk aplikasi yang berjalan pada sistem operasi seperti Unix. Saat Anda mengatur variabel ini, Java Virtual Machine (JVM) mengambil pengaturan zona waktu selama startup.

Mengatur variabel lingkungan TZ di tingkat OS

Gunakan langkah-langkah berikut untuk mengatur variabel lingkungan TZ di tingkat sistem operasi:

  1. Identifikasi zona waktu yang diinginkan. Zona waktu biasanya ditentukan dalam format "Area/Lokasi", seperti "Amerika/New_York" atau "Eropa/London".

  2. Atur variabel lingkungan TZ menggunakan salah satu metode berikut:

    • Pada sistem Unix/Linux, gunakan perintah berikut untuk mengatur variabel di terminal atau di file konfigurasi shell Anda - .bashrc, .bash_profile, .zshrc, dan sebagainya:

      export TZ=America/New_York
      
    • Pada sistem Windows, gunakan perintah berikut untuk mengatur variabel di prompt perintah atau melalui pengaturan lingkungan sistem:

      set TZ=America/New_York
      
  3. Mulai ulang aplikasi sehingga JVM dapat mengambil pengaturan zona waktu baru.

Contoh

Dalam contoh berikut, aplikasi myapp.jar berjalan di zona waktu Europe/London:

export TZ=Europe/London
java -jar myapp.jar

Mengatur variabel lingkungan TZ dalam Dockerfile

Saat menjalankan aplikasi Java dalam kontainer, Anda dapat mengatur variabel lingkungan TZ dalam Dockerfile untuk memastikan bahwa kontainer berjalan di zona waktu yang diinginkan.

Contoh Dockerfile

Contoh berikut mengonfigurasi kontainer untuk menggunakan zona waktu America/New_York dengan mengatur variabel lingkungan TZ dan menginstal paket 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"]

Mengatur properti JVM -Duser.timezone

Metode lain untuk mengonfigurasi zona waktu di Java adalah menentukan properti -Duser.timezone saat memulai JVM. Metode ini independen platform dan memungkinkan pengaturan zona waktu langsung dari baris perintah atau dalam skrip aplikasi. Properti JVM ini lebih diutamakan daripada variabel lingkungan TZ.

Gunakan langkah-langkah berikut untuk mengatur properti -Duser.timezone:

  1. Identifikasi zona waktu yang diinginkan. Mirip dengan variabel lingkungan TZ, zona waktu ditentukan dalam format "Area/Lokasi".

  2. Atur properti -Duser.timezone dengan menambahkannya ke baris perintah Java saat memulai aplikasi, seperti yang ditunjukkan dalam contoh berikut:

    java -Duser.timezone=America/New_York -jar myapp.jar
    

Contoh

Dalam contoh berikut, aplikasi myapp.jar berjalan di zona waktu Asia/Tokyo:

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

Sistem dan lingkungan lain

Anda dapat menerapkan prinsip-prinsip mengonfigurasi zona waktu di Java menggunakan variabel lingkungan TZ dan properti JVM -Duser.timezone ke sistem dan lingkungan lain. Baik Anda menjalankan aplikasi di platform cloud, dalam komputer virtual (VM), atau dalam berbagai sistem orkestrasi kontainer, Anda dapat menggunakan metode yang sama untuk memastikan bahwa aplikasi Java Anda beroperasi dalam konteks zona waktu yang benar.

Pada platform cloud, konfigurasikan variabel lingkungan TZ atau properti JVM dalam skrip penyebaran atau pengaturan konfigurasi lingkungan Anda.

Pada komputer virtual, atur variabel lingkungan TZ di lingkungan VM Anda atau gunakan properti JVM di skrip startup aplikasi Anda.

Dengan orkestrasi kontainer, gunakan contoh Dockerfile untuk aplikasi kontainer, memastikan bahwa data zona waktu tersedia dan diatur dengan benar.

Dengan mengikuti prinsip-prinsip ini, Anda dapat mencapai konfigurasi zona waktu yang konsisten di berbagai lingkungan penyebaran untuk aplikasi Java Anda.