Apa Itu Waktu Unix?
Waktu Unix (juga dikenal sebagai Epoch time, waktu POSIX, atau timestamp Unix) adalah sistem untuk menggambarkan suatu titik waktu. Ini adalah jumlah detik yang telah berlalu sejak Epoch Unix, yang didefinisikan sebagai 00:00:00 UTC pada hari Kamis, 1 Januari 1970. Ini banyak digunakan di sistem operasi mirip Unix dan banyak sistem komputasi lainnya.
Keuntungan utama dari waktu Unix adalah kesederhanaannya. Ia mewakili waktu sebagai satu bilangan bulat yang dipahami secara universal dan terus meningkat. Ini membuatnya sangat mudah untuk menyimpan, membandingkan, dan melakukan perhitungan dengan cap waktu tanpa khawatir tentang zona waktu, waktu musim panas, atau sistem kalender yang berbeda. Misalnya, untuk menemukan durasi antara dua peristiwa, cukup kurangkan timestamp Unix mereka.
Meskipun angka mentah ini sempurna untuk komputer, ini tidak sangat ramah untuk manusia. Untuk menjembatani kesenjangan ini, pengembang dan penggemar teknologi menggunakan alat yang disebut konverter epoch. Anda dapat menggunakannya untuk langsung mengonversi timestamp apa pun menjadi tanggal yang dapat dibaca manusia, atau melakukan sebaliknya dengan menemukan timestamp untuk tanggal tertentu.
Masalah Tahun 2038
Salah satu masalah terkenal terkait waktu Unix adalah "Masalah Tahun 2038." Ini mirip dengan masalah Y2K. Banyak sistem komputer awal dirancang untuk menyimpan timestamp Unix sebagai bilangan bulat bertanda 32-bit. Bilangan bulat bertanda 32-bit dapat mewakili nilai dari -2.147.483.648 hingga 2.147.483.647.
Nilai maksimum, 2.147.483.647
, akan tercapai pada 03:14:07โฏUTC pada 19โฏJanuariโฏ2038. Pada detik berikutnya, bilangan akan melampaui batas dan membungkus ke nilai paling negatif, yang akan diinterpretasikan oleh sistem sebagai tanggal di tahun 1901. Ini dapat menyebabkan kegagalan luas pada perangkat lunak lama yang bergantung pada representasi waktu 32-bit.
Solusinya adalah menggunakan bilangan bulat 64-bit untuk menyimpan timestamp. Bilangan 64-bit memiliki nilai maksimum yang sangat besar sehingga tidak akan melampaui batas selama sekitar 292 miliar tahun, secara efektif menyelesaikan masalah ini untuk masa depan yang dapat diperkirakan. Sebagian besar sistem operasi dan perangkat lunak modern telah beralih ke representasi waktu 64-bit.
Detik Lompat dan Waktu Unix
Satu detail teknis penting adalah bahwa waktu Unix tidak memperhitungkan detik lompat. Meskipun UTC (Waktu Universal Terkoordinasi) kadang menambahkan detik lompat untuk menjaga jam kita tetap selaras dengan rotasi Bumi, timestamp Unix hanya mengabaikannya dan terus menghitung secara linier.
Ini berarti bahwa waktu Unix bukan representasi waktu UTC yang sebenarnya. Sebaliknya, ini lebih akurat digambarkan sebagai hitungan linier detik. Ketika detik lompat terjadi, waktu Unix terkadang mengulang satu detik untuk tetap sinkron. Nuansa ini penting untuk aplikasi ilmiah dan presisi tinggi, tetapi untuk sebagian besar penggunaan komputasi umum, perbedaannya tidak signifikan.
Penggunaan Umum Waktu Unix
- Cap Waktu File: Sistem operasi menggunakan timestamp Unix untuk melacak kapan file dibuat, diubah, atau diakses terakhir.
-
Basis Data:
Ini adalah cara yang umum dan efisien untuk menyimpan informasi tanggal dan waktu untuk catatan (misalnya,
created_at
,updated_at
). - API dan Pengembangan Web: Digunakan untuk kedaluwarsa sesi, kontrol cache, dan pencatatan permintaan API.
- Pemrograman: Hampir semua bahasa pemrograman menyediakan fungsi untuk mendapatkan timestamp Unix saat ini dan mengonversinya ke dan dari format tanggal yang dapat dibaca manusia.