Konverter Unix timestamp ke tanggal

Ubah Unix timestamp menjadi tanggal dan waktu yang mudah dibaca — atau ubah tanggal kembali menjadi Unix timestamp. Mendukung detik dan milidetik.

Bagikan alat ini

Sematkan di situs Anda

Apa itu Unix timestamp?

Unix timestamp, juga disebut Unix time atau POSIX time, adalah jumlah detik yang telah berlalu sejak 1970-01-01 00:00:00 UTC, yang dikenal sebagai Unix epoch. Ini adalah standar yang banyak digunakan dalam komputasi karena mewakili suatu titik waktu sebagai satu angka bulat, sehingga penyimpanan, perbandingan, dan operasi aritmatika menjadi sederhana.

JavaScript bekerja secara internal dalam milidetik, jadi Date.now() mengembalikan Unix timestamp dikalikan dengan 1000. Banyak API, database, dan sistem backend menggunakan detik. Alat ini menerima kedua format dan secara otomatis mendeteksi detik atau milidetik berdasarkan ukuran angka yang Anda masukkan.

Unix timestamp yang penting

TimestampTanggal (UTC)Catatan
01970-01-01 00:00:00Unix epoch
1.000.000.0002001-09-09 01:46:401 miliar detik
2.000.000.0002033-05-18 03:33:202 miliar detik
2.147.483.6472038-01-19 03:14:07Masalah tahun 2038 (maks 32-bit)

Mengapa 1970?

Epoch Unix tanggal 1 Januari 1970 dipilih sebagian karena konvensi dan sebagian karena keterbatasan praktis. Unix dikembangkan pada akhir 1960-an dan awal 1970-an di Bell Labs. Para pengembang memerlukan tanggal awal yang baru dan bulat untuk representasi waktu mereka. 1 Januari 1970 cukup baru untuk praktis dan tidak memiliki signifikansi teknis khusus — ini hanya merupakan titik acuan yang nyaman.

Tanggal epoch alternatif ada di sistem lain: epoch Windows FILETIME adalah 1 Januari 1601; waktu GPS dimulai 6 Januari 1980; epoch NTP adalah 1 Januari 1900. Saat mengonversi antar sistem, mengetahui epoch setiap sistem sangat penting.

Detik vs milidetik

Unix timestamp asli dihitung dalam detik. Sebagian besar bahasa dan sistem sisi server (shell Unix, time.time() Python, time() PHP, sebagian besar database) menggunakan detik. Date.now() dan new Date().getTime() JavaScript mengembalikan milidetik. Ketidaksesuaian ini adalah sumber bug yang umum ketika frontend JavaScript berkomunikasi dengan API backend.

Unix timestamp dalam detik saat ini adalah angka 10 digit (sekitar 1.700.000.000 pada 2023). Timestamp dalam milidetik adalah angka 13 digit. Kalkulator mendeteksi format mana yang telah Anda masukkan berdasarkan jumlah digit dan mengonversi sesuai kebutuhan.

Masalah tahun 2038

Sistem yang menyimpan Unix timestamp sebagai bilangan bulat bertanda 32-bit hanya dapat mewakili tanggal hingga 2.147.483.647 detik setelah epoch — yaitu 03:14:07 UTC pada 19 Januari 2038. Setelah momen tersebut, bilangan bulat bertanda 32-bit mengalami overflow ke bilangan negatif besar, mewakili tanggal di 1901.

Ini kadang disebut masalah "Y2K38" atau Unix Millennium Bug. Sistem 64-bit modern tidak terpengaruh, karena bilangan bulat bertanda 64-bit dapat mewakili timestamp selama sekitar 292 miliar tahun. Namun, sistem tertanam, database lawas, dan perangkat lunak 32-bit yang lebih tua mungkin masih rentan. Banyak industri — termasuk telekomunikasi, perbankan, dan sistem kontrol industri — memiliki upaya migrasi yang sedang berlangsung untuk mengatasi hal ini.

Cara mendapatkan Unix timestamp saat ini

Bahasa / lingkunganPerintah
JavaScriptMath.floor(Date.now() / 1000)
Pythonimport time; int(time.time())
PHPtime()
Bashdate +%s
SQL (PostgreSQL)EXTRACT(EPOCH FROM NOW())::int
SQL (MySQL)UNIX_TIMESTAMP()
Gotime.Now().Unix()
RustSystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs()

Kegunaan praktis

Pengembangan API: REST API biasanya menggunakan Unix timestamp untuk kolom created_at, updated_at, dan token expiry. Timestamp tidak bergantung pada zona waktu dan tidak ambigu — berbeda dengan string tanggal berformat, yang bergantung pada lokal dan konvensi pemformatan.

Kedaluwarsa token: JWT (JSON Web Tokens) menggunakan Unix timestamp untuk klaim exp (expiry) dan iat (issued at). Token kedaluwarsa ketika timestamp saat ini melebihi nilai exp. Menghitung waktu kedaluwarsa — "token ini harus kedaluwarsa dalam 24 jam" — memerlukan penambahan 86.400 detik ke timestamp saat ini.

Cache TTL: Kedaluwarsa cache sering diatur sebagai Unix timestamp atau sebagai jumlah detik dari sekarang. Debugging masalah cache sering memerlukan konversi timestamp kedaluwarsa yang disimpan ke tanggal yang dapat dibaca manusia.

Analisis log: Log server sering menyertakan Unix timestamp. Mengonversi mereka ke tanggal yang dapat dibaca adalah langkah pertama dalam menghubungkan entri log dengan peristiwa dunia nyata.

Penyimpanan database: Menyimpan timestamp sebagai bilangan bulat daripada string berformat menghindari bug konversi zona waktu dan menyederhanakan pengurutan, kueri rentang, dan operasi aritmatika. Kueri untuk "semua record dari 7 hari terakhir" menjadi WHERE created_at > (NOW_UNIX - 604800).

Artikel terkait