Managing Timezone Settings
5 min read
Managing Timezone Data #
Semua container yang dibuat di dalam platform secara default menggunakan zona waktu UTC. Namun, jika diperlukan, Kamu dapat dengan mudah mengubahnya ke zona waktu pilihanmu dengan bantuan add-on TimeZone Change. Ikuti langkah-langkah yang disediakan pada bagian yang ditautkan untuk mengganti zona waktu di salah satu instance milikmu.
Sebagai alternatif, Kamu juga bisa menerapkan perubahan secara manual. Misalnya, semua application server Java dan PHP di platform telah dilengkapi dengan paket zona waktu khusus, yang berisi data tentang sejarah waktu lokal di berbagai lokasi di seluruh dunia serta aturan zona waktu saat ini. Informasi ini dibutuhkan oleh perangkat lunak yang berjalan di dalam container terkait, dan secara berkala diperbarui dalam server build terbaru yang dirilis oleh platform.
Selain itu, Kamu juga dapat segera memperbarui aturan zona waktu secara manual jika diperlukan, atau mengganti TZ (Time Zone) yang sedang digunakan berdasarkan lokasi yang Kamu pilih. Jadi, di bawah ini akan dijelaskan beberapa hal khusus terkait manajemen data zona waktu di platform untuk application server pada bahasa pemrograman yang disebutkan di atas untuk Java dan PHP.
Timezone Add On #
Add-on TimeZone Change dapat dipasang di salah satu environment milikmu dan akan mengubah zona waktu untuk semua container yang ada di dalamnya hanya dalam hitungan menit.
1. Sebelum melanjutkan ke proses instalasi, mari kita periksa terlebih dahulu zona waktu pada container target menggunakan perintah : date

Seperti yang bisa Kamu lihat, zona waktu yang digunakan adalah UTC (ini adalah pengaturan default untuk semua container yang dikelola oleh platform).
2. Buka repositori TimeZone Change add-on di dalam JPS Collection di GitHub. Salin tautan ke file manifest.jps dan impor melalui dasbor : https://github.com/jelastic-jps/time-zone-change/blob/master/manifest.jps.

3. Di dalam jendela yang terbuka, pilih Environment yang ingin diubah dan ketik TimeZone Name yang diinginkan (lihat daftar zona waktu yang tersedia).

Klik Install untuk menerapkan perubahan.
4. Setelah add-on diinstal, Kamu bisa memverifikasi perubahan zona waktu dengan menjalankan perintah date sekali lagi.

Seperti yang bisa Kamu lihat, waktu sistem berhasil diubah ke zona waktu EDT (Eastern Daylight Time).
Timezone Rules for Java #
Aturan zona waktu dalam compute node Java disediakan melalui paket khusus bernama TZdata, yang sudah termasuk di setiap container terkait.
Updating Timezone Data #
Meskipun versi terbaru dari paket TZdata sudah terintegrasi ke dalam node saat pertama kali dibuat, setelah beberapa waktu data tersebut bisa menjadi usang karena adanya perubahan berkala pada informasi zona waktu di seluruh dunia. Oleh karena itu, container yang sudah lama berjalan mungkin perlu diperbarui secara berkala, agar tidak perlu dibuat ulang setiap kali pembaruan dibutuhkan.
Untuk mengatasi hal ini, digunakan alat khusus bernama TZUpdater, yang sudah disertakan dan ditujukan untuk menjaga data zona waktu tetap akurat dan terkini. Alat ini sangat mudah digunakan dan bisa dijalankan hanya dengan satu baris perintah.
Berikut langkah-langkahnya:
1. Hubungkan ke environment Java Kamu via SSH

2. Setelah berhasil masuk ke dalam container via SSH, Kamu bisa mengecek versi TZdata yang sedang digunakan dengan menjalankan perintah berikut :
java -jar /usr/java/utils/tzupdater.jar -V

3. Jika Kamu menemukan bahwa paket yang sesuai di kontainer yang dipilih sudah usang, Anda dapat memperbarui informasi zona waktu menggunakan alat TZUpdater yang terintegrasi:
java -jar /usr/java/utils/tzupdater.jar -u

Seperti yang dapat kamu lihat, memperoleh versi paket zona waktu (timezone package) terbaru untuk server berbasis Java adalah operasi yang sangat mudah dilakukan di platform ini.
Changing Timezone Java #
Sekarang, mari kita pelajari cara memeriksa dan mengubah waktu lokal server aplikasi. Di sini akan dijelaskan menggunakan contoh server Tomcat 9.
1. Menampilkan Timestamp Saat Ini di Halaman Awal Server
Langkah ini akan membantu Kamu memastikan bahwa pengaturan zona waktu yang baru telah diterapkan dengan benar dan saat ini sudah aktif.
Untuk melakukannya, ubah isi default file /opt/tomcat/webapps/ROOT/index.jsp dengan kode di bawah ini. Cara termudah adalah menggunakan File Manager bawaan platform. <%@page import="java.util.*"%> <html> <head> <title>TZ Page</title> </head> <body> <%=new Date(System.currentTimeMillis()).toString()%> </body> </html>

2. Simpan perubahan tersebut, lalu buka environment Kamu di browser menggunakan tombol Open in Browser yang tersedia di dashboard platform. Setelah halaman terbuka, Kamu akan melihat waktu server saat ini, contohnya seperti ini:

3. Untuk mengubah zona waktu aktual pada server tertentu, lakukan hal berikut:
- Untuk Tomcat, TomEE, Payara, Spring Boot, dan Jetty :
Buka file konfigurasi variables.conf dan tambahkan variabel -Duser.timezone dengan zona waktu yang diinginkan sebagai nilainya, contohnya : -Duser.timezone=US/Pacific
📝 NOTE
Tergantung pada jenis application server yang digunakan, lokasi file variables.conf bisa berbeda-beda :
- Tomcat 7, 8, 9, TomEE: /opt/tomcat/conf/variables.conf
- Jetty 9: /opt/jetty/etc/variables.conf
- Payara 4, 5: /opt/payara/glassfish/domains/domain1/config/variables.conf
- Spring Boot 1, 2: /opt/shared/conf/variables.conf

- Untuk GlassFish, akses panel admin GF, lalu masuk ke: Configurations > gfcluster-config (atau server-config untuk GF 4) > JVM Settings > JVM Options, kemudian klik tombol Add JVM Option. Tempelkan string yang sesuai (misalnya -Duser.timezone=US/Pacific) ke dalam kolom input yang muncul.

- Untuk WildFly, buka file /opt/wildfly/bin/standalone.conf (atau jika server telah diskalakan secara horizontal, buka file konfigurasi /opt/wildfly/bin/domain.conf) dan deklarasikan variabel yang sesuai menggunakan format berikut: export JAVA_OPTS=”-Duser.timezone=US/Pacific”

Simpan penyesuaian yang telah dibuat dan restart server aplikasi Kamu untuk menerapkan pengaturan yang baru.
Sekarang, cukup refresh halaman awal server atau klik tombol Open in Browser sekali lagi untuk melihat waktu lokal yang sudah diperbarui.
Bagus, aturan baru berhasil diterapkan. Dengan cara ini, Kamu bisa mengatur zona waktu apa pun yang diinginkan untuk server-mu tanpa masalah, hanya dalam hitungan menit.
Timezone Rules for PHP #
Pengelolaan pengaturan zona waktu di platform untuk server aplikasi PHP (Apache dan NGINX) dilakukan di dalam bagian [date] pada file konfigurasi utama PHP, yaitu php.ini.
Untuk mengaksesnya, Kamu perlu klik tombol Config di sebelah node yang diinginkan. Di tab yang terbuka, cari file php.ini dalam struktur file (atau gunakan pintasan di daftar Favorites di sebelah kiri), lalu temukan bagian [date] yang disebutkan tadi:

Seperti yang bisa Kamu lihat, bagian ini mencakup dua opsi yang dapat digunakan untuk : mendapatkan data zona waktu terbaru dan menetapkan zona waktu khusus
Checking Timezone Data #
Pengaturan pertama memungkinkan Kamu untuk menggunakan database zona waktu eksternal alternatif (yaitu database Olson) jika database internal sudah usang.

Untuk itu, cukup hapus tanda titik koma (;) di awal baris ekstensi yang sesuai untuk mengaktifkannya, lalu simpan perubahan yang telah dibuat dan restart server aplikasi kamu.
Sekarang, jika kamu klik Open in browser dan scroll ke bagian date di halaman phpinfo(), kamu akan melihat versi paket zona waktu terbaru yang ditampilkan, dengan keterangan bahwa database eksternal sedang digunakan.

Changing Timezone PHP #
Opsi kedua di bagian [date] pada file php.ini digunakan untuk menentukan lokasi zona waktu saat ini (secara default mengarah ke zona waktu UTC) dari suatu node.
Untuk menampilkan ini dalam contoh nyata, kita akan mengubah halaman awal default server (/var/www/webroot/ROOT/index.php) dengan kode berikut ini:
<?php echo date("h:i:sa"); ?>

Sekarang, setelah menyimpan file yang telah diperbarui dan mengklik Open in browser, kamu akan melihat output timestamp yang menunjukkan waktu lokal sesuai zona waktu yang telah dikonfigurasi.

Kembali ke dashboard platform dan tentukan zona waktu yang diinginkan sebagai nilai untuk parameter date.timezone di dalam file php.ini (misalnya: Australia/Sydney dalam contoh ini).

Sekali lagi, simpan konfigurasi baru yang telah kamu buat, restart node PHP yang sesuai, lalu refresh laman browser yang menampilkan waktu saat ini.

Selesai! Seperti yang Kamu lihat, zona waktu berhasil diubah dan sekarang sudah sesuai dengan lokasi yang diinginkan.
Powered by BetterDocs

