Semua panduan

Mengubah stempel waktu Unix menjadi tanggal dan sebaliknya

Dipublikasikan · Diperbarui 2 menit baca

Stempel waktu Unix menghitung waktu yang berlalu sejak 1 Januari 1970 tengah malam menurut waktu universal. Dua pertanyaan menentukan tanggal hasilnya: satuan angkanya, dan zona waktu tempat Anda membaca hasilnya.

Sebuah nilai acuan

Ubah stempel waktu Unix memberikan tiga bacaan dari saat yang sama. Untuk 1700000000, dengan peramban diatur ke waktu Paris:

BacaanHasil
Tanggal UTCTue, 14 Nov 2023 22:13:20 GMT
Tanggal lokal14 November 2023 pukul 23:13:20 UTC+1
ISO2023-11-14T22:13:20.000Z

Waktu lokal mengikuti zona waktu peramban: lebih satu jam di Paris pada musim dingin. Stempel waktu yang sama adalah satu saat tunggal, yang dibaca di dua zona waktu.

Satuan dikenali dari jumlah digit

Pengaturan bawaan mengenali satuan dari panjang angka. Ketiga nilai di bawah menunjuk saat yang sama, sesuai ketelitiannya.

AngkaDigitSatuan yang dikenaliSaat yang diperoleh
170000000010Detik14 Nov 2023, 22:13:20 UTC
170000000000013Milidetik14 Nov 2023, 22:13:20 UTC
170000000012345616Mikrodetik14 Nov 2023, 22:13:20.123 UTC

Aturannya: sampai 11 digit, detik; dari 12 sampai 14, milidetik; 15 dan 16, mikrodetik. Pengaturan “milidetik” memaksa satuan itu.

Jebakan aturan ini

Karena satuan disimpulkan dari panjangnya, nilai yang ambigu dibaca dengan satu cara: 10000000000 (11 digit) menghasilkan 20 November 2286, dan 100000000000 (12 digit) menghasilkan 3 Maret 1973. Stempel waktu milidetik sebelum Maret 1973 memiliki 11 digit atau kurang, dan akan terbaca sebagai detik: paksa pengaturan “milidetik”.

Nilai sebelum 1970 dan batas 2038

Angka negatif menunjuk saat sebelum 1970: -1 menghasilkan 31 Desember 1969 pukul 23:59:59 UTC, dan 0 menghasilkan 1 Januari 1970 tengah malam.

Angka 2147483647 adalah yang terbesar yang dapat ditampung bilangan bulat bertanda 32 bit: hasilnya 19 Januari 2038 pukul 03:14:07 UTC. Angka berikutnya, 2147483648, menghasilkan 03:14:08: alat ini terus berjalan tanpa batas, tetapi sistem yang menyimpan waktu dalam 32 bit tidak bisa.

Mengubah tanggal menjadi stempel waktu

Masukkan tanggal sebagai ganti angka: alat ini memberikan stempel waktu dalam detik dan milidetik.

MasukanStempel waktu dalam detikBacaan
2026-01-011767225600Tengah malam menurut waktu universal, tanpa zona waktu
2026-01-01T10:30:00+01:00176725980010:30 di Paris, yaitu 09:30 menurut waktu universal
2024-02-291709164800Tahun kabisat diterima

Tanggal tanpa zona waktu dibaca dalam waktu universal, bukan waktu lokal: alat ini menyebutkannya dalam hasil. Tanggal yang tidak ada, seperti 30 Februari 2026, ditolak dengan sebuah pesan.

Kesalahan umum

  • Membaca milidetik sebagai detik: tanggal mendarat ribuan tahun terlalu jauh.
  • Melupakan zona waktu: tanggal yang dibaca sebagai lokal lalu dikirim sebagai universal bergeser satu jam atau lebih.
  • Menulis tanggal tanpa zona waktu sambil memikirkan waktu lokal, padahal akan dibaca dalam UTC.

Untuk menghitung hari di antara dua tanggal, lihat Menghitung jumlah hari di antara dua tanggal.

Periksa sebuah konversi

  1. Baca ulang baris UTC, yang tidak bergantung pada perangkat.
  2. Periksa satuan yang disebutkan di baris pertama hasil.
  3. Ubah kembali tanggal yang diperoleh: Anda harus mendapatkan angka awalnya.

Ubah stempel waktu Unix