Pada sebuah aplikasi, biasanya ada sebuah fitur yang digunakan untuk menyimpan sebuah data beserta waktunya (biasa disebut DateTime atau Timestamp), entah itu waktu saat data disimpan atau waktu untuk kegunaan lainnya, misalnya waktu saat data tersebut akan dipublikasi. Salah satu contoh fitur adalah fitur untuk membuat artikel pada sebuah blog yang nantinya artikel tersebut akan dipublikasikan kepada para pembaca.
Ketika penulis menggunakan fitur tersebut, penulis mengisi form untuk membuat sebuah artikel dan juga mengatur waktu publikasi dari artikel tersebut sebelum akhirnya penulis mengklik tombol "Simpan" untuk menyimpan artikel itu di database.
Katakanlah disini penulis adalah orang Indonesia jadi disini dia membuat sebuah artikel dan waktu publikasi artikel disimpan menggunakan zona waktu Indonesia (GMT+7), misalnya 21 Feb 2023 10:00.
Kemudian artikel tersebut tampil kepada para pembaca. Karena artikel disimpan dengan zona waktu Indonesia (GMT+7), pembaca dari Indonesia tidak akan merasa ada masalah saat melihat waktu publikasi dari artikel tersebut.
Namun apa jadinya ketika pembaca dari negara lain yang bisa jadi memiliki zona waktu yang berbeda melihat waktu publikasi artikel tidak sesuai dengan zona waktu mereka? misalnya mereka melihat daftar artikel namun tidak ditemukan artikel tersebut dipublikasikan pada 21 Feb 2023 10:00 di zona waktu mereka dan tentu saja hal ini akan membuat mereka kebingungan.
Solusi
Solusinya adalah semua waktu yang berkaitan dengan data tersebut harus disimpan ke dalam database dalam format UTC. Kemudian ketika waktu tersebut akan ditampilkan pada aplikasi, maka waktu tersebut harus diformat sesuai zona waktu dimana pengguna aplikasi tersebut berada.
Dalam kasus diatas, ketika penulis membuat sebuah artikel, waktu publikasi artikel walau diatur sesuai dengan zona waktu Indonesia (GMT+7) dari antarmuka aplikasi, namun saat akan disimpan ke database harus diformat ke UTC. Jadi dari 21 Feb 2023 10:00 (GMT+7) menjadi 21 Feb 2023 03:00 (UTC).
Setelah itu ketika akan ditampilkan ke antarmuka aplikasi, waktu publikasi artikel harus diformat dari UTC ke zona waktu masing-masing pengguna aplikasi.
Misal pengguna dari Indonesia mengakses aplikasi, maka waktu publikasi artikel harus diformat dari UTC ke GMT+7. Kemudian ada pengguna dari Jepang mengakses aplikasi, maka waktu publikasi artikel harus diformat dari UTC ke GMT+9. Proses format bisa dilakukan dibagian frontend nya.
Kesimpulan
Dengan adanya proses format dari zona waktu pengguna ke UTC dan sebaliknya, hal ini dapat menghindarkan pengguna dari berbagai zona waktu yang berbeda dari kebingungan akan waktu dari sebuah data yang tampil pada antarmuka aplikasi. Dan alangkah baiknya kalian menerapkan hal ini diawal kalian membuat aplikasi.