Timestamp Unix: periksa satuan sebelum percaya tanggalnya

Angka dari log atau API bisa menjadi tanggal tidak masuk akal. Sering kali bukan zona waktu misterius, melainkan detik dibaca sebagai milidetik atau sebaliknya.

Angka perlu satuan yang jelas

Timestamp menghitung sejak 1970-01-01T00:00:00Z. Sebagian sistem memakai detik; Date JavaScript memakai milidetik dan mengabaikan detik kabisat.

Kalikan detik dengan 1000 untuk milidetik. Jumlah digit bukan kontrak yang andal, terutama dekat awal epoch atau pada nilai negatif; baca ketentuan sumber.

Referensi: MDN — Date timestamps, UTC and milliseconds

Zona mengubah tampilan, bukan momennya

Momen yang sama dapat memiliki jam lokal berbeda tanpa mengubah timestamp. Menambah offset manual lalu menampilkan di zona itu dapat menerapkan offset dua kali.

Konverter ini memakai UTC dan mensyaratkan Z pada masukan tanggal. Zona tidak ditebak dari bahasa atau negara; gunakan konverter zona waktu untuk tampilan lokal.

Presisi dan rentang ikut menentukan makna

Pecahan detik dapat mewakili milidetik: 1.25 detik bukan 1250 detik. Simpan pecahan jika catatan perlu diurutkan lebih teliti dari satu detik.

Alat menerima detik hingga 3 angka desimal atau milidetik bulat. Tanggal diperiksa, bukan membetulkan hari yang tidak ada secara diam-diam. Ini bukan pengukur interval detik kabisat atau pengganti kontrak waktu khusus.

Contoh: dua angka untuk momen yang sama

86400 detik dan 86400000 milidetik sama-sama berarti 1970-01-02T00:00:00.000Z. Membaca 86400 sebagai milidetik justru memberi 1970-01-01T00:01:26.400Z; bukan masalah bahasa atau kalender.

−0.25 detik berarti 1969-12-31T23:59:59.750Z. Tanda minus menempatkannya sebelum epoch dan pecahannya tetap ada; negatif tidak otomatis berarti tanggal salah.

Referensi