Unix Timestamp Dijelaskan
Memahami Epoch Time
Pelajari Tentang TimestampUnix timestamp seperti "1704067200" berarti 1 Januari 2024 tengah malam UTC. Angka sederhana ini—detik sejak 1 Januari 1970—adalah cara komputer secara universal merepresentasikan waktu. Memahami Unix timestamp sangat penting untuk pemrograman, database, dan bekerja dengan API.
Mengapa 1970?
Sistem operasi Unix dikembangkan pada akhir 1960-an di Bell Labs. Ketika para perancang membutuhkan titik awal sembarang untuk penunjuk waktu:
- 1 Januari 1970 dipilih sebagai angka bulat yang dekat dengan penciptaan sistem
- Ini memungkinkan integer 32-bit mencakup tanggal jauh ke masa depan
- Dimulai pada tengah malam UTC membuatnya sederhana dan universal
"Epoch" ini menjadi standar de facto di seluruh komputasi.
Mengonversi Timestamp
Timestamp ke Tanggal
| Timestamp | Dapat Dibaca Manusia (UTC) |
|---|---|
| 0 | 1 Januari 1970 00:00:00 |
| 86400 | 2 Januari 1970 00:00:00 |
| 1000000000 | 9 September 2001 01:46:40 |
| 1234567890 | 13 Februari 2009 23:31:30 |
| 1704067200 | 1 Januari 2024 00:00:00 |
| 2000000000 | 18 Mei 2033 03:33:20 |
| 2147483647 | 19 Januari 2038 03:14:07 (batas 32-bit) |
Interval Waktu Berguna
| Periode | Detik |
|---|---|
| 1 menit | 60 |
| 1 jam | 3.600 |
| 1 hari | 86.400 |
| 1 minggu | 604.800 |
| 1 tahun (kira-kira) | 31.536.000 |
Timestamp Milidetik
Banyak sistem menggunakan milidetik alih-alih detik:
| Format | Contoh (momen yang sama) | Digunakan Oleh |
|---|---|---|
| Detik | 1704067200 | Unix, PHP, Python |
| Milidetik | 1704067200000 | JavaScript, Java, JSON API |
| Mikrodetik | 1704067200000000 | Beberapa database |
| Nanodetik | 1704067200000000000 | Go, beberapa sistem |
Untuk mengonversi: Milidetik ÷ 1000 = Detik
Bekerja dengan Timestamp dalam Kode
JavaScript
// Timestamp saat ini (milidetik)
Date.now(); // 1704067200000
// Timestamp ke tanggal
new Date(1704067200 * 1000);
// Tanggal ke timestamp
Math.floor(new Date('2024-01-01').getTime() / 1000);Python
import time, datetime
# Timestamp saat ini
time.time() # 1704067200.0
# Timestamp ke datetime
datetime.datetime.fromtimestamp(1704067200)
# Datetime ke timestamp
datetime.datetime(2024, 1, 1).timestamp()SQL
-- MySQL: Timestamp saat ini
SELECT UNIX_TIMESTAMP();
-- Konversi timestamp ke tanggal
SELECT FROM_UNIXTIME(1704067200);
-- Tanggal ke timestamp
SELECT UNIX_TIMESTAMP('2024-01-01');Keunggulan Unix Timestamp
- Netral zona waktu: Selalu UTC, tanpa masalah DST
- Aritmatika mudah: Tambah/kurangi detik untuk matematika waktu
- Penyimpanan ringkas: Integer tunggal vs string terformat
- Pengurutan: Pengurutan numerik alami sama dengan pengurutan kronologis
- Universal: Bekerja lintas bahasa dan sistem
Kapan Menggunakan Timestamp vs Tanggal Terformat
- Timestamp: Penyimpanan, perhitungan, API, database
- Tanggal terformat: Tampilan pengguna, laporan, log
Kesimpulan
Unix timestamp menghitung detik sejak 1 Januari 1970 UTC. Sistem sederhana ini memungkinkan representasi waktu universal di seluruh komputer dan bahasa pemrograman. Ingat bahwa beberapa sistem menggunakan milidetik (13 digit) alih-alih detik (10 digit), dan bahwa sistem 32-bit menghadapi batas pada tahun 2038. Untuk penyimpanan dan perhitungan, timestamp sangat ideal; untuk tampilan, konversi ke format yang mudah dibaca manusia.