Waktu Unix menghitung detik sejak 1970
Cap waktu Unix adalah jumlah detik yang berlalu sejak tengah malam UTC pada 1 Januari 1970. Ia tidak membawa zona waktu maupun waktu musim panas, dan karena itulah peladen dan basis data menyimpan momen dengan cara itu. Tanggal yang terbaca manusia adalah angka itu yang digambarkan dalam zona tertentu.
Jumlah digitnya menyingkapkan satuannya. Sepuluh digit berarti detik dan tiga belas digit berarti milidetik. JavaScript bekerja dalam milidetik sementara perkakas Unix dan banyak basis data bekerja dalam detik, sehingga mengali atau membagi dengan seribu muncul terus-menerus.
ISO 8601 adalah bentuk teks bakunya, ditulis 2026-09-16T00:00:00Z. Huruf Z di ujungnya berarti UTC, dan imbuhan seperti +09:00 muncul ketika sebuah zona dilekatkan. Bertukar tanggal dalam format ini menghapus kesamaran yang muncul dari urutan hari, bulan, dan tahun yang berbeda-beda antarnegara.
Kesalahan yang berasal dari zona waktu
Stempel waktu tidak punya zona, tetapi tanggal yang Anda baca di layar punya. Jakarta tujuh jam lebih cepat dari UTC, jadi tengah malam UTC tanggal 16 September adalah pukul 07.00 hari yang sama di Jakarta, sementara di New York masih pukul 20.00 tanggal 15. Membandingkan tanggal saja itulah sumber selisih sehari yang tampak.
Mencampur detik dan milidetik melemparkan hasilnya ke tahun 1970 atau ke puluhan ribu tahun. Konversi yang mendarat pada 1 Januari 1970 berarti nilai milidetik terbaca sebagai detik; tahun di kisaran lima puluh ribu berarti sebaliknya.
Masalah 2038 hanya mengenai sistem yang menghitung detik dalam bilangan bulat bertanda 32 bit. Melewati 19 Januari 2038 nilainya meluap dan berbalik negatif. Sebagian besar lingkungan sekarang memakai 64 bit, jadi hal ini kini muncul terutama pada perangkat tertanam lawas dan kolom basis data warisan.