🕐 Panduan Lengkap Unix Timestamp Converter
Memahami Unix timestamp dari dasar hingga implementasi nyata. Panduan lengkap untuk developer yang bekerja dengan data waktu, timezone, dan format konversi di berbagai bahasa pemrograman.

💡 Kisah Nyata: Bug Timezone yang Merugikan
Salah satu bug paling umum dan mahal dalam dunia software adalah timezone bug. Bayangkan sebuah platform e-commerce yang menjadwalkan promo flash sale pukul 00:00 tengah malam — tetapi server berjalan di timezone UTC, sementara pelanggan berada di Jakarta (UTC+7). Hasilnya? Promo muncul 7 jam terlambat, dan perusahaan kehilangan jutaan rupiah potensi penjualan.
Ini bukan cerita fiksi. Ini terjadi berulang kali di berbagai perusahaan teknologi. Memahami Unix timestamp dengan benar adalah fondasi untuk menghindari masalah seperti ini.
📌 Apa itu Unix Timestamp?
Unix timestamp (disebut juga POSIX time atau Epoch time) adalah sistem untuk merepresentasikan waktu sebagai sebuah angka tunggal — jumlah detik yang telah berlalu sejak Unix Epoch, yaitu 1 Januari 1970 pukul 00:00:00 UTC. Sistem ini tidak termasuk hitungan leap seconds.
Kenapa harus angka tunggal? Karena angka jauh lebih mudah disimpan, dibandingkan, dan diproses oleh komputer daripada format tanggal yang bervariasi seperti "12 Mei 2026" atau "May 12th, 2026". Ini memungkinkan perhitungan selisih waktu yang presisi hanya dengan operasi pengurangan biasa.
Contoh Unix Timestamp:
1747036800= 12 Mei 2026 00:00:00 UTC
🔢 Format-Format Timestamp yang Wajib Anda Tahu
Banyak developer bingung karena ada beberapa varian presisi timestamp yang digunakan platform berbeda. Mengirim timestamp dalam satuan yang salah ke API bisa menyebabkan bug yang sulit dilacak.
Seconds — 10 digit
1747036800Standar Unix time. Digunakan di sebagian besar sistem Linux/Unix, Python time.time(), dan API backend.
Milliseconds — 13 digit
1747036800000Digunakan di JavaScript (Date.now()), Java, dan banyak database NoSQL seperti MongoDB. Ini yang paling sering menyebabkan kebingungan.
Microseconds — 16 digit
1747036800000000Digunakan di Python dengan time.time_ns() atau C++ untuk sistem yang memerlukan presisi tinggi seperti trading finansial.
⚠️ Tips Penting:
Selalu tanyakan ke dokumentasi API: apakah mereka menerima timestamp dalam detik (seconds) atau milidetik (milliseconds). Meneruskan timestamp dalam milidetik ke endpoint yang mengharapkan detik akan membuat semua tanggal menjadi tahun 50.000+!
💻 Konversi Timestamp di Berbagai Bahasa Pemrograman
Setiap bahasa pemrograman memiliki cara tersendiri untuk bekerja dengan timestamp. Berikut contoh lengkap yang bisa langsung Anda gunakan:
📜 JavaScript / Node.js
// Mendapatkan timestamp saat ini
const nowMs = Date.now(); // Milliseconds
const nowSec = Math.floor(Date.now() / 1000); // Seconds
// Timestamp → Objek Date
const date = new Date(1747036800 * 1000);
console.log(date.toISOString()); // 2026-05-12T00:00:00.000Z
// Format tanggal lokal Indonesia
const options = {
timeZone: 'Asia/Jakarta',
dateStyle: 'full',
timeStyle: 'short'
};
const formatted = new Intl.DateTimeFormat('id-ID', options).format(date);
console.log(formatted); // Selasa, 12 Mei 2026 pukul 07.00
// Date → Timestamp
const ts = Math.floor(new Date('2026-05-12T00:00:00Z').getTime() / 1000);
console.log(ts); // 1747036800🐍 Python
import time
from datetime import datetime, timezone
import pytz
# Timestamp saat ini (seconds)
timestamp = int(time.time())
print(timestamp) # 1747036800
# Timestamp → datetime (UTC)
dt_utc = datetime.fromtimestamp(1747036800, tz=timezone.utc)
print(dt_utc) # 2026-05-12 00:00:00+00:00
# Timestamp → datetime (WIB)
wib = pytz.timezone('Asia/Jakarta')
dt_wib = datetime.fromtimestamp(1747036800, tz=wib)
print(dt_wib) # 2026-05-12 07:00:00+07:00
# datetime → Timestamp
dt = datetime(2026, 5, 12, tzinfo=timezone.utc)
ts = int(dt.timestamp())
print(ts) # 1747036800🐘 PHP
// Timestamp saat ini
$timestamp = time(); // seconds
// Timestamp → format tanggal
$date = date('d F Y H:i', 1747036800); // 12 May 2026 00:00
// Dengan timezone WIB
date_default_timezone_set('Asia/Jakarta');
$dateWib = date('d F Y H:i', 1747036800); // 12 May 2026 07:00
// String → Timestamp
$ts = strtotime('2026-05-12 00:00:00 UTC');
echo $ts; // 1747036800🌏 Memahami Timezone Indonesia
Unix timestamp selalu tersimpan dalam UTC (Coordinated Universal Time) — tidak ada informasi timezone di dalamnya. Artinya, konversi ke tampilan lokal adalah tanggung jawab Anda sepenuhnya. Indonesia memiliki 3 zona waktu resmi:
WIB (UTC+7)
Sumatera, Jawa, Kalimantan Barat & Tengah
Asia/JakartaWITA (UTC+8)
Bali, NTB, NTT, Kalimantan Timur, Sulawesi
Asia/MakassarWIT (UTC+9)
Maluku, Papua
Asia/Jayapura🚫 Kesalahan Umum yang Harus Dihindari
❌ Menyimpan tanggal sebagai string
Menyimpan "2026-05-12 07:00:00" di database tanpa informasi timezone sangat berbahaya. Saat server dipindah ke region lain, semua data waktu Anda bisa bergeser jam.
❌ Lupa kalikan/bagi 1000
JavaScript Date.now() menghasilkan milidetik. Jika Anda langsung menyimpannya ke field "seconds", semua tanggal akan menjadi tahun 50.000. Selalu perhatikan satuan!
✅ Best Practice
Selalu simpan waktu dalam UTC di database. Lakukan konversi ke timezone lokal hanya di lapisan tampilan (frontend/view layer). Ini memastikan konsistensi data di seluruh sistem.
✅ Kesimpulan
Unix timestamp adalah fondasi dari cara komputer merepresentasikan waktu. Memahaminya dengan benar — termasuk perbedaan satuan, timezone, dan konversi antar bahasa — akan menghindarkan Anda dari bug timezone yang mahal dan menyebalkan.
- Timestamp selalu dalam UTC — konversi timezone hanya di layer tampilan
- Perhatikan satuan: seconds (10 digit) vs milliseconds (13 digit)
- Gunakan library timezone yang terpercaya (pytz, Intl API, Carbon)
- Simpan selalu dalam UTC di database, tampilkan dalam lokal user
Anda bisa mengkonversi timestamp secara instan menggunakan Timestamp Converter di Ced DevTools — gratis, akurat, dan mendukung semua format sekaligus.