Bahasa Melayu

Alat pembangun · Penukar cap masa Unix

Zon waktu tidak diimbangi: pangkalan data IANA tz dan sebab ia penting

· Latar belakang

cap masa zon waktu pelayar-apis

Laluan zon bernama yang menghasilkan offset berbeza untuk dua saat
Ilustrasi vektor ToolAcre asal

Offset ialah nombor; zon waktu ialah sejarah nombor dan peraturan apabila ia berubah. Siaran ini menerangkan perbezaannya, memperkenalkan pangkalan data IANA tz yang mengekodnya dan menunjukkan sebab penukar bergantung padanya untuk bacaan tempatan.

Mesyuarat yang bergerak sejam — ofset tersimpan +02:00 yang betul pada bulan Julai dan salah pada bulan Disember

`+02:00` tetap yang disimpan di sebelah mesyuarat Julai boleh menjadi bacaan setia untuk seketika itu dan masih gagal sebagai peraturan untuk bulan Disember. Offset ialah satu hasil; zon ialah konteks peraturan yang mampu menghasilkan keputusan pada tarikh yang berbeza. Menyimpan satu seolah-olah ia adalah satu lagi membekukan syot kilat.

Baris setempat ToolAcre meminta Intl memformat setiap Tarikh dan meminta pengimbangan angka pendek. Ia tidak menambah pemalar konfigurasi pada zaman. Reka bentuk itu membenarkan peraturan terpakai persekitaran mempengaruhi setiap segera secara berasingan.

Offset lawan zon — jarak tetap dari UTC berbanding rantau bernama dengan peraturan DST dan sejarah perubahan

Offset menyatakan sejauh mana jam yang diberikan adalah dari UTC pada satu ketika. Rantau yang dinamakan boleh membawa urutan peraturan offset dan perubahan sejarah. Zaman itu sendiri tidak membawa kedua-duanya. Konsep ini harus menduduki medan yang berasingan apabila aplikasi memerlukan kedua-dua acara dan jadual berdasarkan tempat.

Untuk acara yang tidak berubah, menyimpan segera mungkin sudah memadai. Untuk "dibuka di 09:00 di rantau ini setiap hari", kekalkan zon yang dinamakan kerana kejadian akan datang mesti diselesaikan dari masa dinding. Menggunakan semula offset semalam menganggap peraturan dinamik sebagai sifat berangka kekal.

Pangkalan data IANA tz — Area/City nama, sebab ia merupakan rekod keputusan politik dan kekerapan ia dikemas kini

Buku kerja menamakan pangkalan data IANA, asal politik dan kekerapan kemas kini. Pelaksanaan melaporkan nama zon gaya IANA daripada `resolvedOptions()` tetapi tidak mendedahkan versi pangkalan data, jadual kemas kini atau pakej sumber. Butiran tersebut tidak dinyatakan di sini.

Had ini menjejaskan pembiakan. Jika keluaran tarikh lama berbeza antara mesin, rekod rentetan zon dan versi platform; jangan dakwa set peraturan mana yang lebih baharu daripada jam sahaja. Zon bernama menambah baik soalan, tetapi penukar bukan pemeriksa data zon masa.

Aplikasi yang memerlukan output sejarah yang boleh diterbitkan semula harus mengawal pergantungan data zon mereka dan tarikh perwakilan ujian. Bergantung pada persekitaran pelayar yang tidak ditentukan mewakilkan kebolehulangan itu.

Asal peraturan zon bernama dan kaden kemas kini tidak didedahkan oleh pelaksanaan ini

ToolAcre meminta pelayar untuk zon dan format setempatnya melalui Antarabangsa. Repositori tidak menentukan sama ada peraturan datang daripada sistem pengendalian, fail pelayar atau komponen masa jalan yang lain. Ia menangkap kegagalan dan mundur dengan selamat daripada mendedahkan seni bina dalaman itu.

Akibatnya, "tempatan" bermaksud persekitaran yang dipilih oleh pelayar pada masa penukaran. Menukar tetapan peranti boleh menukar output tanpa mengubah zaman. Untuk jejak audit, simpan UTC dan kiraan mentah; gunakan paparan tempatan sebagai konteks dan bukannya storan kanonik.

Sandaran kepada ISO pada kegagalan pemformat mengekalkan seketika tetapi kehilangan pembentangan setempat yang diminta. Pengguna harus menganggapnya sebagai konteks paparan yang dikurangkan, bukan tarikh yang diubah.

Pelayar memilih dan memformat zon setempatnya; sumber peraturannya tidak ditegaskan

Pilih dua UTC selang enam bulan, seperti `2025-01-15T12:00:00Z` dan `2025-07-15T12:00:00Z`, tukarkannya kepada saat dan periksa baris setempat pada satu peranti. Rekod sama ada offset berangka berbeza. Pemerhatian adalah sah untuk zon dan persekitaran yang dipaparkan.

Buku kerja menetapkan Europe/Berlin mengimbangi, tetapi peraturan zon bernama tersebut tidak dibaca daripada pelaksanaan. Latihan boleh ulang ini mengelakkan jadual yang tidak disokong sambil mengajar perbezaan yang sama: satu pertanyaan zon, dua seketika dan kemungkinan dua hasil offset.

Jika offset sepadan, pemerhatian masih bermaklumat: zon yang dikonfigurasikan itu tidak mendedahkan perbezaan bermusim pada detik yang dipilih dalam persekitaran itu.

Contoh yang berjaya: perhatikan satu zon pelayar pada dua tarikh dan bukannya peraturan Berlin pengekodan keras

Panel meminta `timeZoneName: "shortOffset"`, yang mengutamakan hubungan angka seperti GMT+1 berbanding singkatan serantau. Pilihan itu mengurangkan pergantungan pada label yang maknanya boleh berbeza-beza mengikut konteks, walaupun pemformatan Antarabangsa yang tepat kekal sebagai output platform.

Untuk data yang disimpan, gunakan pengecam zon kanonik yang ditakrifkan oleh pustaka pilihan aplikasi daripada memaparkan singkatan. Label pendek yang dihadapi pengguna boleh membantu, tetapi ia tidak sepatutnya menjadi kunci yang membina semula jadual masa hadapan.

Offset berangka kekal tidak jelas sebagai aritmetik pada satu ketika. Had mereka ialah tiada identiti peraturan, bukan ketidakupayaan untuk memetakan satu jam membaca kembali ke UTC.

Singkatan dielakkan dalam data yang disimpan; pemformat meminta offset berangka pendek

Penjadualan masa hadapan yang berulang memerlukan jurang, pertindihan dan pengendalian dasar yang tidak disediakan oleh penukar ini. Ia bermula dengan tarikh atau zaman yang diselesaikan dan menjadikannya. Ia tidak memilih antara dua waktu tempatan yang berulang atau membaiki yang tidak wujud.

Gunakan perpustakaan penjadualan sedar zon yang tingkah lakunya diuji untuk keperluan anda, kemudian periksa kejadian yang diselesaikan di sini jika membantu. Mengasingkan resolusi daripada paparan mengekalkan penukar mudah daripada menjadi penjadual tidak sengaja dengan dasar kelebihan yang tidak ditentukan.

Output penjadual kemudiannya boleh disimpan sebagai zaman untuk pelaksanaan sambil mengekalkan zon dan niat masa dinding asal untuk pengiraan semula atau penjelasan masa hadapan.

Bawa pulang: simpan seketika sebagai zaman, simpan tempat sebagai nama zon — dan cara penukar cap waktu Unix menggunakan zon pelayar anda untuk bacaan setempat

Simpan seketika sebagai unit zaman eksplisit atau rentetan UTC berkanun dan simpan zon bernama apabila tempat itu sendiri penting. Offset boleh mengiringi output untuk penjelasan, tetapi ia bukan pengganti untuk mana-mana medan. ToolAcre's UTC dan baris setempat menunjukkan pemisahan itu.

Apabila hasil tempatan mengejutkan anda, semak label zon, segera dan mengimbangi sebelum menukar data. Tampalan offset tetap boleh menjadikan satu tarikh kelihatan betul dan satu lagi salah. Model tahan lama memastikan acara itu stabil dan membenarkan peraturan zon yang disahkan membekalkan muka jamnya.

Model ini juga menyokong perjalanan: pengguna boleh melihat satu yang disimpan segera dalam zon tempatan baharu tanpa menulis semula acara atau kehilangan konteks penjadualan asalnya.