Bahasa Indonesia

Alat pengembang · Konverter stempel waktu Unix

Detik kabisat dan waktu Unix: mengapa zaman seolah-olah tidak ada

· Latar belakang

stempel waktu waktu unix zona waktu

Garis waktu langsung dari 23:59:59 hingga tengah malam
Ilustrasi vektor ToolAcre asli

UTC telah memasukkan detik kabisat sejak 1972, namun waktu Unix tidak menghitungnya, yang berarti beberapa detik telah terjadi dua kali. Postingan ini menjelaskan alasannya, apa itu corengan, dan mengapa seluruh praktik dijadwalkan untuk diakhiri.

Yang kedua terjadi dua kali — 23:59:60 di satu sistem, 23:59:59 berulang di sistem lain, dan kesalahan kunci duplikat di tengah malam

ToolAcre tidak dapat menghasilkan baris ISO yang diakhiri dengan `23:59:60`. Pengujiannya memberi nama batas detik kabisat dan mengharapkan satu nilai periode diformat sebagai `2016-12-31T23:59:59.000Z` dan periode berikutnya sebagai `2017-01-01T00:00:00.000Z`. Tidak ada detik tambahan yang dapat ditampilkan di antara keduanya.

Fakta tersebut dapat memengaruhi log yang sumber eksternalnya menggunakan konvensi lain, namun repositori ini tidak berisi bukti insiden kunci duplikat. Jika label berulang muncul di sistem, periksa jam dan jalur penyimpanan tersebut daripada mengaitkannya secara otomatis ke konverter.

Oleh karena itu, sistem yang memerlukan label unik untuk setiap detik fisik memerlukan lebih banyak konteks daripada pemetaan Unix-to-Date ini. Konverter tidak dapat membuat label yang dihilangkan modelnya.

ToolAcre terbukti tidak dapat mewakili 23:59:60; itu tidak mendokumentasikan insiden kunci duplikat

Garis besarnya menjelaskan waktu atom, rotasi bumi, dan ambang batas toleransi. Klaim ilmiah dan standar tersebut tidak ditentukan oleh kode stempel waktu atau pengujian. Mereka sengaja ditinggalkan daripada diparafrasekan dari ingatan. Mekanisme di sini tidak membuktikan alasan di balik kebijakan ketepatan waktu global.

Untuk menggunakan rute ini, bukti yang diperlukan lebih sederhana: Tanggal dan keluaran ISO mengekspos label kedua biasa, dan zaman gaya POSIX bergerak melintasi batas yang diuji. Perlakuan bersumber pada tata kelola masa kabisat akan memerlukan materi resmi di luar jalur penyimpanan yang diizinkan.

Batasan ini bersifat eksplisit dan bukannya mengelak: pengujian perangkat lunak menjawab pertanyaan representasi, sementara sejarah ilmiah memerlukan materi yang ditulis untuk tujuan tersebut dan ditinjau berdasarkan ketentuannya sendiri.

Alasan fisik untuk detik kabisat memerlukan sumber di luar repositori ini

Model yang diterapkan berperilaku seolah-olah hari sipil pada porosnya memiliki 86,400 bernomor Unix detik. Input bilangan bulat berturut-turut berbeda satu detik, termasuk melintasi batas 2016 tahun. `fromEpoch` mengalikan masing-masing dengan 1,000 dan Tanggal memformat hitungan milidetik yang dihasilkan.

Menyebut detik kabisat "mengabaikan" ini menjelaskan keluaran yang dapat diamati: tidak ada nilai Unix unik yang dipetakan ke label `:60`. Ini tidak berarti setiap jam mesin bergerak secara identik selama penyisipan sebenarnya. Konverter menerima hitungan; itu tidak mengambil sampel atau mendisiplinkan jam host.

Aritmatika pada rentang yang lebih besar mengikuti konvensi yang sama, jadi mengurangkan dua nilai Unix akan mengukur perbedaan jumlah gaya POSIX daripada merekonstruksi label lompatan yang dihilangkan.

Konversi yang diuji tidak memiliki label detik kabisat di antara nilai periode yang berurutan

Sistem dapat menerapkan langkah-langkah, pengulangan, atau coretan, namun repositori tidak mengidentifikasi penyedia mana yang menggunakan metode mana, pada interval berapa, atau dengan rumus apa. Menerbitkan rincian tersebut tanpa bukti langsung akan menciptakan presisi yang berbahaya secara operasional. Oleh karena itu, artikel ini tidak menjanjikan jam khusus platform.

Jika kejadian di dekat batas lompatan penting, pertahankan dokumentasi jam sumber dan nilai mentahnya. Dua sistem dengan penanganan berbeda dapat berbeda pendapat bahkan setelah kedua nilai diformat sebagai UTC. Konversi saja tidak dapat menyelaraskan perilaku pengambilan sampel atau memulihkan perbedaan skala yang dihilangkan.

Pilihan runtime juga dapat memengaruhi pemesanan jangka pendek di sekitar acara. Pertahankan penghitung monotonik atau data urutan sumber spesifik ketika pembedaan tersebut penting secara operasional.

Perilaku clock-step dan smear bersifat spesifik platform dan tidak terverifikasi di sini

Masukkan 1,483,228,799 detik: hasil ISO yang diverifikasi adalah `2016-12-31T23:59:59.000Z`. Tambahkan input satu kali ke 1,483,228,800: hasilnya adalah `2017-01-01T00:00:00.000Z`. Mengurangkan bilangan bulat menghasilkan satu, mencocokkan perkembangan yang ditampilkan dalam model ini.

Baris lokal mungkin menampilkan tanggal atau offset yang berbeda tergantung pada browser, namun berasal dari momen yang sama. Gunakan baris ISO untuk pemeriksaan batas. Perubahan zona lokal tidak berhubungan dengan apakah ada label detik kabisat.

Pasangan ini merupakan uji regresi yang berguna karena tidak ada ketergantungan lokal pada string ISO. Ini secara langsung mengunci perilaku konverter di tepi yang relevan.

Contoh praktis: batas 2016 repositori yang diuji

Buku kerja ini merujuk pada resolusi 2022 dan tenggat waktu di masa mendatang. Tidak ada standar atau sumber kebijakan yang menjadi bagian dari bukti implementasi, sehingga tanggal maupun perkiraan tidak disebutkan di sini. Kebijakan ketepatan waktu dapat berubah dan layak mendapatkan kutipan resmi terkini pada waktu publikasi.

Menghilangkan klaim tersebut tidak melemahkan panduan perangkat lunak. Data yang ada masih perlu didokumentasikan skala, satuan dan sumber jamnya. Perilaku pelaku konversi saat ini tetap dapat diuji secara independen dari keputusan mengenai praktik waktu sipil di masa depan.

Pengelola dapat menambahkan konteks kebijakan nanti dengan mengutip resolusi secara langsung. Sampai saat itu tiba, mengecualikan tenggat waktu lebih akurat daripada menerbitkan jaminan masa depan yang tidak didukung.

Resolusi kebijakan di masa depan dihilangkan tanpa sumber yang berwenang

TAI, GPS dan skala lainnya dapat merepresentasikan waktu secara berbeda, namun ToolAcre tidak menawarkan pemilih atau tabel offset untuk skala tersebut. Menempelkan hitungan seperti detik Unix hanya menerapkan interpretasi gaya 1970 POSIX. Hasil yang dapat dibaca masih bisa salah secara semantik.

Transformasikan skala lain dengan sumber yang menentukan asal dan hubungannya pada saat yang relevan, lalu periksa nilai Unix yang dihasilkan. Jangan menambahkan konstanta yang diingat: hubungan yang melibatkan sejarah lompatan adalah saat aritmatika tanpa sumber daya menjadi rapuh.

Absennya mode terlihat pada tiga pilihan unit UI. Tidak ada yang mengubah skala waktu; otomatis hanya memilih antara dua resolusi Unix.

Skala waktu lain berada di luar implementasi konverter Unix ini

Untuk konverter ini, aturan yang diverifikasi adalah langkah langsung dari 23:59:59 ke 00:00:00 pada batas yang diuji. Model tersebut mendukung aritmatika zaman biasa dan menjelaskan mengapa tidak ada keluaran `:60` yang muncul. Ini tidak menyatakan bagaimana jam sistem operasi berperilaku ketika batas sebenarnya dilewati.

Ketika penanganan presisi mendekati lompatan penting, konversi adalah langkah presentasi terakhir, bukan sumber bukti. Kumpulkan dokumentasi skala jam, perilaku sinkronisasi, dan bidang peristiwa mentah terlebih dahulu. ToolAcre kemudian dapat menunjukkan arti dari jumlah Unix yang dideklarasikan dalam model yang diuji.

Untuk log biasa yang jauh dari batas lompatan, nuansa ini jarang mengubah tampilan. Namun, mendekati batas-batas sensitif, penamaan model mencegah klaim palsu tentang fidelitas fisik kedua.