Alat pengembang · Konverter stempel waktu Unix
Detik atau milidetik? Menceritakan zaman 10 digit dari zaman 13 digit
· Cara kerjanya
stempel waktu waktu unix alur kerja pengembang
Sebagian besar nilai zaman yang Anda temui saat ini adalah sepuluh digit (detik) atau tiga belas digit (milidetik), dan salah menebak akan menghasilkan tanggal puluhan ribu tahun. Posting ini menjelaskan aritmatika di balik jumlah digit dan mengapa konverter harus menyatakan satuannya daripada menyimpulkannya.
1700000000 atau 1700000000000? — instan yang sama ditulis dua arah, dan dasbor yang menunjukkan tanggal jauh di masa depan
Nilai log 1700000000 dan nilai payload 1700000000000 dapat menggambarkan momen yang sama. Perlakukan yang pertama sebagai milidetik dan dasbor Anda jatuh ke bulan Januari 1970; perlakukan detik sebagai detik dan tanggalnya melonjak ribuan tahun ke depan. Stempel waktu hanyalah hitungan ditambah satuan dan titik awal, sehingga kolom database bernama create_at tanpa dokumentasi telah menghilangkan informasi penting.
Mengapa penghitungan detik saat ini memiliki sepuluh digit — sepersejuta detik di 2001, rentang sepuluh digit hingga 2286, dan apa arti sembilan digit
Waktu Unix menghitung detik yang berlalu dari 1970-01-01 00:00:00 UTC berdasarkan konvensi POSIX biasa. Penghitungnya melampaui satu miliar pada 2001; untuk tanggal positif kontemporer biasanya sepuluh digit desimal. Tetap sepuluh digit hingga mencapai sepuluh miliar di 2286. Ini adalah properti notasi basis sepuluh, bukan aturan yang dimasukkan ke dalam string tanggal ISO. Nilai negatif sebelum zaman dan tanggal yang jauh di luar masa sekarang membuat pintasan penghitungan digit sederhana menjadi tidak valid.
Mengapa hitungan milidetik ada tiga belas — faktor seribu, tiga digit tambahan, dan dari mana konvensi JavaScript dan Java berasal
JavaScript Date.getTime() secara konvensional menghitung milidetik, mengalikan stempel waktu detik dengan 1,000. Tiga angka nol membuat hitungan detik sepuluh digit menjadi hitungan milidetik tiga belas digit. Misalnya 1,700,000,000 detik menjadi 1,700,000,000,000 milidetik; keduanya 2023-11-14T22:13:20.000Z. Konverter yang hanya menyisipkan pemisah tanpa menyebutkan satuan yang diasumsikan dapat mengubah angka yang valid menjadi tanggal yang masuk akal namun salah.
Jika tebakan salah — nilai kecil di dekat zaman, tanggal sebelum 2001, dan tanggal mendatang saat jumlah digit tidak lagi membeda-bedakan
Heuristik gagal di dekat 1970 ketika nilai milidetik mungkin pendek, sebelum 2001 ketika detik memiliki kurang dari sepuluh digit, atau dengan penghitung mikrodetik dan nanodetik. ToolAcre secara default menafsirkan besaran di bawah 10¹¹ sebagai detik dan nilai yang lebih besar sebagai milidetik, dan memberi label pada satuan yang digunakan. Ambang batas tersebut merupakan perkiraan praktis, bukan dekoder format yang jelas. Stempel waktu yang diberikan oleh API tertentu harus ditafsirkan menggunakan dokumentasi API tersebut meskipun panjangnya tidak biasa.
Contoh praktis: tiga nilai dari satu log — 1700000000, 1700000000000 dan 1700000000000000, dibaca dalam hitungan detik, milidetik, dan mikrodetik
Tiga bilangan bulat dari log ilustratif menunjukkan jebakannya. Tafsirkan 1700000000 sebagai detik dan 1700000000000 sebagai milidetik: keduanya menghasilkan 2023-11-14T22:13:20Z. Tafsirkan 1700000000000000 sebagai mikrodetik dan bagi dengan satu juta untuk mendapatkan hitungan detik yang sama. Konverter ToolAcre menerima detik atau milidetik, bukan mode mikrodetik: menempelkan angka ketiga tersebut tanpa mengonversi satuannya terlebih dahulu tidak akan mengonfirmasi waktu instan yang diinginkan. Selalu satukan bidang mentah dan unitnya saat melakukan debug.
Mengapa satuan harus dinyatakan, bukan ditebak — bagaimana konverter menunjukkan satuan yang diterapkan sehingga asumsi yang salah terlihat dan bukannya diam
Layanan yang mengirimkan stempel waktu harus memberi nama unit dalam skemanya atau menggunakan teks ISO 8601 dengan offset eksplisit. Jika bidang warisan tidak terdokumentasi, bandingkan beberapa nilai dengan waktu peristiwa lain yang dapat diandalkan sebelum memutuskan; satu tanggal yang secara kebetulan masuk akal bukanlah bukti yang cukup. Konverter menampilkan unit mana yang diterapkan, memberi Anda peluang untuk mengetahui kesalahan faktor-1,000. Ubah unit secara eksplisit dan bandingkan daripada mengandalkan tebakan otomatis sebagai kontrak API jangka panjang.
Yang tidak tercakup dalam hal ini — stempel waktu disimpan sebagai string, ISO 8601 teks atau tanggal seri spreadsheet, yang merupakan masalah berbeda
Artikel ini tidak menjelaskan tanggal seri Excel, string seperti 2026-09-28T10:15Z, atau pemformatan zona waktu pembacaan jam lokal. Itu adalah representasi yang berbeda. Stempel waktu Unix mengacu pada sekejap; saat yang sama muncul sebagai waktu jam dinding yang berbeda di zona berbeda. Konvensi kabisat detik juga memerlukan perlakuan terpisah, dan penghitung bertanda 32-bit memiliki masalah overflow di 2038 yang berbeda dari pertanyaan detik versus milidetik.
Kesimpulan: hitung digitnya, lalu konfirmasikan satuannya — dan bagaimana konverter stempel waktu Unix membaca detik dan milidetik dengan satuan berlabel
Hitung angka sebagai petunjuk awal, lalu konfirmasikan unit yang disebutkan produsen dan setidaknya satu peristiwa yang diketahui. Konverter stempel waktu Unix membuat asumsi detik/milliseconds yang diterapkan terlihat dan mencetak UTC dan representasi lokal di browser Anda. Jangan biarkan tanggal yang tampak rapi mengesampingkan dokumentasi yang bertentangan dari sistem yang menghasilkan nilai tersebut.