Bahasa Melayu

Alat pembangun · Penukar cap masa Unix

Satu cap masa, dua jam: mengapa UTC dan waktu tempatan berbeza untuk satu zaman

· Bagaimana ia berfungsi

cap masa masa unix zon waktu

Sekejap disambungkan kepada dua jam dengan tangan yang berbeza
Ilustrasi vektor ToolAcre asal

Nilai zaman menamakan satu saat, tetapi masa jam dinding yang anda lihat bergantung pada tempat anda berada. Siaran ini menerangkan aritmetik mengimbangi, sebab tarikh itu sendiri boleh berbeza dan sebab penukar menunjukkan kedua-dua bacaan.

Pelanggan berkata 9 a.m., log itu menyatakan 16:00 — acara yang sama, dua jam dan tiket sokongan yang entah ke mana

Kes sokongan boleh terhenti apabila seorang melaporkan "sembilan pagi" manakala log permohonan merekodkan 16:00. Tiada label jam mengenal pasti peristiwa sehingga zon atau ofsetnya diketahui. Jika kedua-dua rujukan diselesaikan pada zaman yang sama, mencari kelewatan pemprosesan selama tujuh jam membazirkan penyiasatan pada perbezaan paparan.

Mulakan dengan mengumpul cap masa mentah dan setiap konteks zon pemerhati. ToolAcre menunjukkan UTC dan bacaan setempat pelayar semasa daripada satu penukaran, jadi perbandingan adalah serta-merta untuk orang yang memegang log. Rakan sekerja di tempat lain harus membandingkan nilai ISO yang dikongsi, bukan menganggap baris setempat orang pertama digunakan pada mesin mereka.

Zaman ialah sekelip mata, bukan masa jam dinding — kiraan saat sejak 1970 yang tidak mempunyai zon sendiri

Epok ialah jarak dari 1970-01-01T00:00:00Z dalam saat atau milisaat. Ia tidak mengandungi bandar, bendera penjimatan siang atau notasi jam pilihan. Oleh itu, nilai 1,700,000,000 mengenal pasti satu saat; label seperti petang Selasa atau pagi Rabu ialah unjuran yang dibuat selepas memilih cara membaca segera itu.

Inilah sebabnya mengapa menyimpan "zaman tempatan" yang diperbetulkan ialah ralat kategori. Menambah offset mengubah kiraan dan mata pada masa yang lain. Simpan atau hantar segera asal, kemudian gunakan peraturan membaca di tepi tempat seseorang memerlukan kalendar. ToolAcre mengikut bentuk itu dengan mengekalkan saat berangka dan milisaat di sebelah output yang diformatkan.

Cara offset digunakan — menambah atau menolak jam dan minit, zon setengah jam dan 45-minit dan mengimbangi yang berubah sepanjang tahun

Untuk ofset tetap, aritmetik adalah mudah: UTC+09:00 menunjukkan jam sembilan jam lebih awal daripada UTC, manakala UTC−05:00 menunjukkan satu lima jam di belakang. Pecahan satu jam dikendalikan sebagai minit, jadi offset empat puluh lima minit tidak selamat diwakili dengan pembundaran kepada jam integer. Tanda itu adalah milik bacaan tempatan yang dipaparkan.

Offset tetap masih sahaja satu pemerhatian. ToolAcre meminta Intl untuk mengimbangi yang digunakan untuk segera yang dipilih dalam zon semasa pelayar. Ia tidak menganggap bahawa offset hari ini terpakai sepanjang tahun. Oleh itu, menyalin satu offset ke dalam konfigurasi aplikasi boleh kelihatan betul semasa ujian dan gagal apabila peraturan terpakai persekitaran berubah.

Apabila tarikh juga berubah — sesaat menjelang tengah malam yang jatuh pada hari kalendar berbeza di UTC dan setempat

Aritmetik jam boleh melintasi sempadan kalendar. Sekejap di 00:20 UTC muncul pada tarikh sebelumnya di bawah offset negatif dan kemudian pada tarikh yang sama di bawah tarikh positif. Tiket yang sahaja merekodkan "yang ke-14" boleh merujuk kepada kepingan log UTC yang berbeza, walaupun kedua-dua peserta mengingati kalendar mereka sendiri dengan tepat.

Gunakan tarikh penuh, masa dan offset apabila menyerahkan acara antara pasukan. Baris ISO penukar menghalang tarikh daripada dipisahkan daripada UTC, manakala baris setempat membekalkan konteks biasa. Jika insiden berlaku pada tengah malam, susun entri mengikut zaman atau UTC daripada mengisih label manusia yang ditulis dalam beberapa zon.

Contoh berfungsi: 1700000000 dalam UTC, dalam zon UTC+9 dan dalam zon UTC−5 — aritmetik ditulis dan tarikh dibandingkan

Artikel unit terbitan sedia ada menetapkan bahawa 1,700,000,000 saat ialah `2023-11-14T22:13:20.000Z`. Di bawah bacaan +09:00 tetap, tambah sembilan jam untuk mendapatkan 2023-11-15 07:13:20; di bawah tetap −05:00, tolak lima jam untuk mendapatkan 2023-11-14 17:13:20. Tarikh berubah sahaja dalam contoh timur.

Kedua-dua bacaan mengimbangi ini ialah demonstrasi aritmetik, bukan dakwaan tentang bandar yang dinamakan pada tarikh tersebut. Baris tempatan ToolAcre harus dibenarkan untuk melaporkan apa sahaja bekalan Antarabangsa yang mengimbangi untuk zon pelayar sebenar. Bandingkannya dengan nilai UTC dan tuliskan offset yang dipaparkan dan bukannya memaksa sama ada nilai ilustrasi pada hasilnya.

Contoh berfungsi: satu zaman dalam UTC, kemudian dua bacaan mengimbangi tetap yang jelas

Menunjukkan kedua-dua bacaan mengalih keluar penolakan mental daripada sesi nyahpepijat. Pasukan pelayan boleh memetik UTC, manakala orang yang menghasilkan semula masalah boleh mengecam jam tempatan yang mereka lihat. Oleh kerana kedua-dua baris berasal daripada satu Tarikh, saat dan milisaat yang sepadan membuktikan bahawa kedua-dua baris itu belum diedit atau dibundarkan secara bebas kepada peristiwa yang berasingan.

Pasangan ini amat berguna dalam tangkapan skrin: sertakan nota unit dan baris ISO daripada memangkas ke nilai setempat yang biasa. Jam yang dipangkas boleh ditafsir semula selepas perjalanan atau perubahan penetapan zon. Epok tambah ISO kekal stabil dan pemaparan setempat menerangkan pengalaman pengguna tanpa menggantikan rujukan stabil itu.

Perkara ini tidak meliputi — perubahan mengimbangi sejarah dan keputusan zon waktu politik, yang hidup dalam pangkalan data tz dan bukannya dalam aritmetik

Penambahan mudah tidak boleh menerangkan zon serantau yang pengimbangan yang berkenaan berbeza-beza. Penukar mewakilkan pemformatan tempatan kepada Antarabangsa, tetapi repositorinya tidak mendedahkan jadual peraturan asas atau keputusan sejarah. Oleh itu, artikel ini tidak menyenaraikan perubahan masa lalu, meramalkan dasar masa depan atau menjanjikan output yang sama daripada enjin yang membawa data berbeza.

Apabila aplikasi mesti menjadualkan "09:00 di tempat ini", kekalkan zon yang dinamakan dan gunakan reka bentuk penjadualan sedar zon. Apabila ia mesti merekodkan "permintaan ini berlaku sekarang," kekalkan seketika. Itu adalah keperluan data yang berbeza. `+02:00` tetap boleh menerangkan bacaan pada satu masa tanpa mengenal pasti peraturan serantau yang menghasilkannya.

Aritmetik offset tetap tidak boleh menghasilkan semula peraturan serantau yang berubah-ubah

Fikirkan zaman sebagai pin melalui garis masa dan muka jam sebagai label yang diletakkan di sekelilingnya. UTC membekalkan label biasa; pemformatan tempatan membekalkan yang mudah. ToolAcre mempersembahkan kedua-duanya tanpa mengubah suai pin, itulah sebabnya perbezaan jam dijangka dan bukannya bukti masa hilang.

Untuk peristiwa yang dipertikaikan, tampalkan kiraan mentah, nyatakan unit dengan jelas dan kongsi output ISO. Kemudian lampirkan bacaan tempatan sahaja sebagai anotasi. Perintah itu menukar "jam saya berbanding jam anda" menjadi pemetaan boleh semak dan mengekalkan perubahan sempadan tarikh daripada menyamar sebagai acara pada hari yang berbeza.