Bahasa Melayu

Alat pembangun · Penukar cap masa Unix

Cara peralihan penjimatan siang mengubah perkara yang ditunjukkan oleh lajur waktu tempatan

· Bagaimana ia berfungsi

cap masa zon waktu penyahpepijatan

Garis zaman berterusan yang melalui selang jam tempatan yang dilipat
Ilustrasi vektor ToolAcre asal

Dua kali setahun jam tempatan melonjak, dan nilai zaman sekitar peralihan menghasilkan masa tempatan yang berulang atau tidak pernah wujud. Siaran ini menerangkan mekanik supaya output penukar sekitar perubahan DST masuk akal.

Acara dilog di 01:30 dua kali — selang dua zaman sejam yang kedua-duanya memaparkan masa jam dinding tempatan yang sama

Dua zaman berbeza boleh memformat ke label jam dinding yang sama semasa perubahan mengimbangi ke belakang. Buku kerja menetapkan label itu pada 01:30, tetapi repositori tidak menetapkan jam peralihan universal. Selang ulangan tergolong dalam peraturan zon pelayar yang berkenaan, bukan masa Unix itu sendiri.

Apabila pendua muncul, kekalkan epok, ISO baris dan dipaparkan mengimbangi bersama-sama. Isih sahaja lajur `HH:mm` setempat boleh membalikkan atau meruntuhkan acara. Paparan UTC ToolAcre memberikan setiap saat sauh kronologi yang unik walaupun apabila wajah tempatan yang dikenali melawati semula julat yang lebih awal.

Pembacaan tempatan berulang adalah mungkin; sahkan peralihan sebenar dalam pelayar anda dan bukannya menganggap 01:30

Kiraan zaman berjalan melalui peralihan tanpa mengubah unit atau asalnya. Apa yang berubah ialah Ofset Intl terpakai apabila memformat Tarikh dalam zon tempatan. Dua saat berturut-turut kekal berturut-turut dalam UTC walaupun label tempatan mereka kelihatan melompat lebih jauh atau ke belakang.

Perbezaan ini menghalang "pembetulan" yang merosakkan. Menolak satu jam daripada zaman yang disimpan kerana papan pemuka mengulangi satu jam mengubah acara yang sah. Betulkan pemformatan, pengumpulan atau kesamaran dalam label yang dipaparkan. Simpan mesin serta-merta melainkan bukti menunjukkan jam sumber itu sendiri salah.

Invarian berguna bertahan setiap perubahan offset: menolak dua nilai zaman memberikan tempoh berlalu sebenar mereka. Menolak masa dinding berformat mungkin tidak, kerana ofsetnya boleh berbeza.

Peralihan menukar offset yang berkenaan sementara zaman kekal berterusan

Semasa perubahan ofset hadapan, pelbagai label dinding tempatan mungkin tidak dihasilkan. Lebar dan kedudukannya tidak boleh digeneralisasikan dengan selamat daripada pelaksanaan ini; ToolAcre bertanya kepada Antarabangsa dan melaporkan hasilnya. Ia tidak mengandungi andaian berkod keras bahawa setiap syif adalah satu jam atau berlaku pada 02:00.

Penukar bermula dari segera sedia ada, jadi ia sahaja menunjukkan bacaan setempat yang berkenaan pada kedua-dua belah pihak. Menjadualkan input tempatan yang tidak wujud ialah operasi yang berbeza. Jika borang mesti menyelesaikan situasi itu, dasar produknya mesti memutuskan sama ada untuk menolak, mengalih atau mentafsir semula masa dinding yang diminta.

Peralihan ke hadapan boleh melangkau bacaan tempatan; selang masa yang tepat bergantung pada peraturan zon yang disahkan

Perubahan ke belakang menjadikan julat lain berlaku lebih daripada sekali di bawah offset yang berbeza. Teks tempatan menjadi tidak mencukupi melainkan ia termasuk offset atau zaman yang berkaitan. ToolAcre meminta `shortOffset`, memberikan pembaca cara untuk membezakan kedua-dua rendering apabila platform membekalkan format tersebut.

Penyahduplikasian pangkalan data yang dikunci pada tarikh dan minit tempatan boleh membuang rekod sebenar. Peristiwa penting dengan pengecam yang stabil dan simpan detiknya. Medan kalendar tempatan ialah unjuran pertanyaan yang berguna, tetapi ia tidak seharusnya menggantikan nilai yang membezakan kejadian pertama daripada yang kedua.

Peralihan ke belakang boleh mengulangi bacaan tempatan; selang masa yang tepat bergantung pada peraturan zon yang disahkan

Gunakan peralihan yang didokumenkan untuk zon yang dikonfigurasikan pada peranti ujian anda, kemudian pilih dua zaman selang satu jam di sekelilingnya. Tukar setiap satu secara eksplisit sebagai saat dan rekodkan ISO, output tempatan dan ofset. Jika label tempatan mendahului dengan amaun yang berbeza daripada UTC, perubahan offset mengambil kira perbezaan itu.

Kaedah ini dengan sengaja tidak mengekodkan tarikh atau bandar dengan keras. Tugas itu memberi amaran terhadap penegasan peraturan peralihan zon bernama tanpa bukti, dan repositori tidak mempunyai lekapan zon tetap. Pasangan pemerhatian anda menjadi contoh kerja yang boleh dibuat semula untuk persekitaran itu manakala artikel itu kekal benar untuk pembaca di tempat lain.

Contoh yang berjaya: dapatkan pasangan peralihan daripada penukar dan bukannya menerbitkan peraturan zon yang tidak disahkan

Sesetengah zon yang dikonfigurasikan mungkin tidak menunjukkan perubahan bermusim sepanjang tahun yang diuji; yang lain mungkin berbeza antara tarikh sejarah. Penukar boleh memaparkan hasil tersebut tetapi tidak menerangkan atau versi peraturan. Pengiraan mengimbangi tetap tidak boleh menemui titik perubahan kerana ia menganggap ketekalan yang diuji.

Untuk ujian regresi, sematkan persekitaran dan rekod data platform yang diharapkan daripada menganggap satu komputer riba sebagai universal. Untuk sokongan, minta nama zon, pengimbangan segera dan diberikan. Menyebut sahaja "DST adalah salah" meninggalkan bukti yang diperlukan untuk menghasilkan semula perkara yang sebenarnya diformatkan oleh pelayar.

Perkara ini tidak meliputi — menjadualkan masa tempatan masa hadapan merentas perubahan DST, yang memerlukan peraturan zon dan bukannya ofset tetap

Panel ini menukar seketika yang telah diketahui. Ia tidak mengira janji temu masa hadapan berulang seperti "setiap hari Isnin pada 09:00" melalui perubahan offset. Kerja itu bermula dengan zon yang dinamakan dan dasar untuk jurang dan pertindihan, tidak satu pun daripadanya diwakili oleh satu zaman tetap.

Menggabungkan kedua-dua aliran kerja menyebabkan pepijat halus: menambahkan tujuh kali 86,400 saat mengekalkan tempoh yang telah berlalu, tidak semestinya label jam dinding masa hadapan yang sama. Gunakan logik penjadualan yang dibina untuk pengulangan masa sivil. Gunakan penukar zaman selepas itu untuk memeriksa kejadian tertentu yang diselesaikan.

Penjadual juga mesti mengekalkan sama ada pengguna maksudkan kejadian yang lebih awal atau kemudian semasa pertindihan. Pilihan itu tidak mempunyai perwakilan dalam rentetan jam tetap offset tunggal.

Bawa pulang: mempercayai zaman, meragui jam dinding — dan cara pembacaan UTC penukar cap waktu Unix melabuhkan bacaan setempat

Percayai zaman untuk memesan dan menganggap jam dinding sebagai pemaparan yang bergantung kepada konteks. ToolAcre memegang satu tetapan Tarikh manakala Intl membekalkan UTC dan borang tempatan. Oleh itu lompatan atau pengulangan yang mengejutkan boleh diperiksa tanpa mengubah kiraan asas.

Himpunan penyahpepijatan yang selamat ialah nilai mentah, unit, output ISO, label zon tempatan dan ofset. Dengan medan tersebut, peralihan kelihatan sebagai perubahan peraturan pemformatan. Tanpanya, teks jam berulang mengundang tekaan tentang permintaan pendua, baris gilir tertunda atau jam pelayan rosak yang tidak disokong oleh data.

Himpunan bukti ini juga menjadikan laporan pepijat mudah alih. Jurutera lain boleh mengeluarkan semula UTC serta-merta walaupun zon tempatan mereka sendiri dan pemaparan jam dinding berbeza sama sekali.