Alat pembangun · Penukar cap masa Unix
UTC, GMT dan TAI: yang mana satu cap masa anda sebenarnya dikira
· Latar belakang
cap masa masa unix zon waktu
GMT, UTC dan TAI selalunya dianggap sebagai sinonim, tetapi ia adalah tiga perkara berbeza dengan sejarah yang berbeza. Siaran ini menerangkan setiap satu dan yang mana antara mereka masa Unix dan penukar harian yang benar-benar mengikuti.
Tiga nama pada satu pelayan — GMT dalam pengepala Tarikh, UTC dalam log dan TAI dalam kertas penyelidikan, semuanya untuk saat yang sama
Pelayan boleh menunjukkan "GMT" dalam satu protokol, "UTC" dalam log dan skala masa yang lain dalam data saintifik. Label jam yang serupa tidak memberikan kebolehtukaran. Tugas pertama adalah untuk mengenal pasti kontrak di sebalik setiap medan dan bukannya menamakan semula semuanya UTC dalam lapisan pembentangan.
Kontrak ToolAcre adalah eksplisit: Unix saat atau milisaat menjadi ISO 8601 UTC rentetan, baris UTC yang boleh dibaca dan baris setempat pelayar. Ia tidak mempunyai pemilih skala. Sebarang kiraan bukan Unix mesti diubah menggunakan takrifan autoritatifnya sendiri sebelum laluan ini relevan.
Inventori yang berguna merekodkan skala dan siri di sebelah setiap medan. Label yang serupa tidak seharusnya memadamkan asal, terutamanya apabila data melintasi sistem saintifik dan aplikasi.
Greenwich Mean Time — purata masa suria pada meridian, sejarahnya sebagai rujukan dunia dan sebab ia kini menjadi zon waktu dan bukannya standard
Garis besar tersebut menawarkan sejarah Greenwich Mean Time dan penggunaan undang-undang moden. Fakta tersebut tidak terdapat dalam konfigurasi penukar, sumber atau ujian. Oleh itu, artikel ini tidak mengubah repositori kod menjadi petikan sejarah secara inferens.
Secara operasi, jika input menyatakan GMT, periksa protokol yang menentukan. Label jam yang kelihatan setara untuk tarikh permohonan biasa masih boleh membawa keperluan tatabahasa atau dasar tertentu. ToolAcre mengeluarkan UTC label dan tidak boleh ditunjukkan sebagai GMT penghurai atau pemformat.
Jika kebolehoperasian bergantung pada istilah, pautkan spesifikasi kawalan dalam semakan kod. Label paparan tidak boleh berdiri senyap untuk keperluan format wayar.
GMT sejarah dan status undang-undang berada di luar bukti repositori
Baris UTC dijana oleh `Intl.DateTimeFormat` dengan `timeZone: "UTC"`; baris ISO berasal daripada `toISOString()`. Panggilan tersebut membuktikan cara antara muka ini melabel bacaan universalnya. Mereka tidak mendokumenkan bila UTC diterima pakai atau mekanisme institusi di belakangnya.
Untuk penyahpepijatan, label sudah cukup untuk mewujudkan rujukan dikongsi bebas daripada zon tempatan semasa. Bandingkan ISO rentetan atau nilai zaman antara sistem. Jika sumber menggunakan skala lain, mula-mula buktikan hubungan itu daripada menganggap tarikh biasa bermakna pengiraan yang sama.
Keluaran Canonical UTC amat berguna untuk membandingkan persekitaran kerana ia mengalih keluar pemilihan zon setempat. Walau bagaimanapun, ia tidak menukar input daripada skala masa yang tidak diisytiharkan.
Penukar melabelkan UTC tetapi tidak mendokumenkan sejarah definisi UTC
Masa Atom Antarabangsa tidak diwakili dalam kod, konfigurasi atau ujian. Tiada offset semasa, jurang sejarah atau algoritma penukaran muncul di sini. Membekalkan pemalar seperti itu dari ingatan akan menjadi jenis tuntutan masa halus yang dilarang oleh tugas itu.
Kekalkan nilai berlabel TAI sebagai TAI sehingga perpustakaan atau sumber berwibawa melakukan penukaran untuk tarikhnya. Menampalnya terus apabila saat Unix menggunakan asal atau skala yang salah secara senyap dan masih boleh menghasilkan rentetan ISO yang digilap. Kebolehbacaan bukan pengesahan.
Penukaran luaran hendaklah memasukkan nama skala dalam nama pembolehubah dan jenis. Memadamkan label itu sebelum aritmetik menjadikan hasil ISO yang munasabah kemudiannya mustahil untuk diaudit.
TAI tidak dilaksanakan, jadi tiada jurang atau pemalar penukaran ditegaskan
Model Unix yang diuji meningkat daripada nilai zaman 1,483,228,799 pada `2016-12-31T23:59:59Z` kepada 1,483,228,800 pada tengah malam. Ia tidak mempunyai input yang berbeza untuk `23:59:60`. Itulah maksud konkrit tingkah laku gaya POSIX dalam pelaksanaan ini.
Adalah munasabah untuk mengatakan penukar memetakan Unix dikira pada output sivil berlabel UTC di bawah peraturan itu. Adalah mengelirukan untuk memanggil integer sebagai kiraan saat atom yang tepat merentasi setiap lonjakan sejarah. Alat ini membuat tarikh perisian, bukan ukuran skala masa makmal.
Perbezaannya adalah halus tetapi praktikal: pengiraan jujukan mewarisi konvensyen Unix, manakala paparan sivil mewarisi pemformatan Tarikh dan Antarabangsa. Kedua-dua laluan tidak mendedahkan metadata masa atom.
Model Unix yang diuji memetakan gaya POSIX saat ke dalam label UTC tanpa nilai detik lompat
Contoh buku kerja HTTP dan masa undang-undang British memerlukan protokol luaran dan sumber undang-undang. Mereka ditinggalkan. Apabila melaksanakan pengepala atau rekod terkawal, ikut spesifikasi sebenar dan bukannya memilih perkataan UTC atau GMT berdasarkan kesetaraan bahasa sehari-hari.
Dalam modul ini, `GMT` mungkin muncul sebagai sebahagian daripada pemaparan offset pendek Intl untuk offset sifar, tetapi itu adalah output pemformat, bukan janji untuk menjana tarikh protokol. Pastikan paparan UI berasingan daripada siri format wayar dan istilah undang-undang.
Pemformat yang mengembalikan label mengimbangi sifar bukanlah pengesahan protokol yang mencukupi. Uji pengepala bersiri penuh atau rekod terkawal dengan penghurai dan lekapan khususnya.
Penggunaan protokol dan undang-undang GMT memerlukan sumber luaran dan ditinggalkan
GPS skala masa dan tarikh astronomi berada di luar mod yang diterima. UI menawarkan saat, milisaat atau pengesanan automatik sahaja, dan kedua-dua unit yang disokong menganggap zaman Unix. Tiada kotak pilihan yang menukar konvensyen asal atau lompat.
Nombor dari skala lain harus membawa label melalui pengingesan dan storan. Tukar dengan kaedah yang dibina khas, bersumber dan mengekalkan yang asal. Sahaja nilai Unix yang diperolehi berada dalam panel ini; jika tidak, keputusan yang munasabah boleh menyembunyikan ketidakpadanan asas.
Menolak skala yang tidak disokong adalah lebih selamat daripada menawarkan pemalar tekaan. Offset skala masa boleh menjadi sensitif tarikh, dan ketepatan palsu di sini boleh menyusun semula pemerhatian saintifik.
GPS dan skala astronomi bukan mod yang diterima
Sebut UTC apabila merujuk kepada baris universal ToolAcre kerana itulah yang diminta sumber dan label UI. Sebut Unix saat atau milisaat untuk input angka. Elakkan pernyataan umum yang meruntuhkan UTC, GMT dan masa atom menjadi sinonim.
Ketepatan dalam penamaan ialah alat penyahpepijatan. Ia mengenal pasti transformasi yang diperlukan dan tuntutan yang masih belum disahkan. Penukar ini memberikan bukti kukuh untuk satu laluan—Pengiraan Unix kepada paparan UTC/local—dan sengaja tidak menawarkan satu pun untuk skala yang tidak berkaitan.
Semasa menulis dokumentasi, lampirkan setiap istilah pada medan konkrit atau pemformat. Samar-samar mendakwa bahawa ketiga-tiga "bermaksud masa yang sama" menyembunyikan tanggungjawab penukaran yang tepat.