Konverter Unix Timestamp

Lihat waktu Unix saat ini secara langsung, konversi detik atau milidetik epoch menjadi tanggal yang mudah dibaca, atau ubah tanggal menjadi timestamp.

Berjalan 100% di browser Anda. Apa pun yang Anda tempel tidak diunggah atau disimpan.

Waktu Unix saat ini

—

Timestamp → tanggal

Tanggal → timestamp

Cara menggunakan konverter Unix timestamp

  1. Tempelkan Unix timestamp. Konverter mengenali apakah nilainya dalam detik atau milidetik.
  2. Baca tanggalnya dalam UTC, dalam zona waktu lokal Anda, dan dalam format ISO 8601.
  3. Untuk konversi sebaliknya, pilih tanggal dan waktu lalu salin timestamp yang dihasilkan.

Konversi dihitung di browser Anda menggunakan jam dan pengaturan zona waktu perangkat Anda; tidak ada yang dikirim ke atau disimpan di server.

Apa itu Unix timestamp?

Unix timestamp (disebut juga epoch time atau POSIX time) adalah jumlah detik yang telah berlalu sejak Unix epoch: 1970-01-01T00:00:00Z, yaitu tengah malam UTC pada 1 Januari 1970. Tanggal sebelum epoch dinyatakan dengan angka negatif.

Timestamp populer karena berupa satu bilangan bulat, tidak bergantung pada zona waktu dan daylight saving time, mudah dibandingkan dan diurutkan, serta ringkas untuk disimpan. Konversi ke waktu lokal adalah urusan tampilan yang ditangani di saat terakhir.

1700000000      → 2023-11-14T22:13:20Z
0               → 1970-01-01T00:00:00Z
-86400          → 1969-12-31T00:00:00Z

Detik vs milidetik

Utilitas Unix, PHP, time.time() di Python, dan sebagian besar database memakai detik. Date.now() di JavaScript, System.currentTimeMillis() di Java, dan banyak API JSON memakai milidetik. Untuk tanggal masa kini, nilai dalam detik terdiri dari 10 digit dan nilai dalam milidetik terdiri dari 13 digit. Tertukarnya keduanya adalah bug timestamp yang paling umum:

new Date(1700000000)          // Tue Jan 20 1970 (dianggap ms!)
new Date(1700000000 * 1000)   // Tue Nov 14 2023

Detik kabisat diabaikan

Unix time mengasumsikan setiap hari tepat berisi 86.400 detik. Saat detik kabisat disisipkan ke UTC, Unix time tidak menghitungnya, sehingga timestamp tidak sama dengan jumlah sebenarnya detik SI yang telah berlalu sejak 1970. Untuk hampir semua aplikasi, hal ini tidak relevan, dan justru membuat aritmetika tanggal tetap sederhana.

Kesalahan umum

Masalah Tahun 2038

Sistem yang menyimpan timestamp sebagai signed 32-bit integer hanya bisa menghitung sampai 2.147.483.647, yaitu 2038-01-19T03:14:07Z. Satu detik kemudian nilainya meluap (overflow) dan berputar menjadi angka negatif, yang mewakili tanggal di bulan Desember 1901. Sistem operasi dan bahasa pemrograman modern memakai waktu 64-bit, tetapi perangkat embedded, format file lama, dan kolom database yang dideklarasikan sebagai integer 32-bit masih berisiko. Gunakan integer 64-bit atau tipe tanggal/waktu bawaan untuk apa pun yang mungkin menyimpan tanggal di masa depan.

Waktu lokal yang ikut terselip

Mem-parsing string tanggal tanpa zona waktu, seperti 2024-03-10 02:30, akan memakai zona lokal mesin dan bisa menghasilkan timestamp yang berbeda di server yang berbeda, atau waktu yang tidak valid saat peralihan daylight saving time. Selalu sertakan offset atau Z.

ISO 8601

Untuk pertukaran data yang mudah dibaca manusia, ISO 8601 (beserta profil internetnya, RFC 3339) adalah standarnya: 2023-11-14T22:13:20Z atau 2023-11-14T23:13:20+01:00. Seperti timestamp, string ISO 8601 dalam UTC terurut dengan benar sebagai teks biasa.

Mendapatkan timestamp saat ini dalam kode

LingkunganDetik sejak epoch
Shell (Linux, macOS)date +%s
Pythonimport time; int(time.time())
JavaScriptMath.floor(Date.now() / 1000)
PHPtime()
MySQLSELECT UNIX_TIMESTAMP();
PostgreSQLSELECT EXTRACT(EPOCH FROM now());

Untuk mengubah timestamp kembali menjadi tanggal di command line, gunakan date -u -d @1700000000 di Linux (GNU date) atau date -u -r 1700000000 di macOS.

Tips: JWT menyimpan exp, iat, dan nbf sebagai Unix timestamp dalam detik. JWT decoder mengonversinya untuk Anda. Untuk pengenal berurutan waktu yang menyematkan timestamp milidetik, lihat generator UUID v7.

Pertanyaan yang sering diajukan

Apakah Unix timestamp sama di setiap zona waktu?

Ya. Unix timestamp menghitung detik sejak satu titik waktu tetap dalam UTC, jadi pada saat yang sama nilainya identik di mana pun. Yang berbeda hanya hasil konversinya ke jam lokal.

Bagaimana cara membedakan detik dan milidetik?

Hitung jumlah digitnya. Tanggal saat ini terdiri dari 10 digit dalam detik dan 13 digit dalam milidetik. "Tanggal" di bulan Januari 1970 biasanya berarti nilai dalam detik dibaca sebagai milidetik; tanggal puluhan ribu tahun di masa depan berarti sebaliknya.

Apa yang terjadi pada tahun 2038?

Hanya software yang menyimpan waktu dalam signed 32-bit integer yang akan bermasalah. Timestamp 64-bit tidak akan meluap selama miliaran tahun.

Bisakah Unix timestamp bernilai negatif?

Bisa. Nilai negatif mewakili waktu sebelum 1 Januari 1970, meskipun beberapa sistem dan API lama tidak menerimanya.

Diperbarui

Komentar

Belum ada penilaian

Masuk untuk menilai alat ini.

Bagikan tips, ajukan pertanyaan, atau ceritakan pengalaman Anda memakai alat ini.

Belum ada komentar. Jadilah yang pertama bercerita.

Tersalin ke clipboard