Alat pembangun · Penukar cap masa Unix
Maksud Z: UTC, offset dan penunjuk dalam ISO 8601 cap waktu
· Bagaimana ia berfungsi
cap masa iso-8601 zon waktu
Penukar dan API mencetak serta-merta sebagai rentetan ISO 8601, dan Z atau offset mengekor ialah bahagian yang dilangkau oleh orang. Siaran ini menerangkan format sekeping demi sekeping supaya anda boleh membaca UTC dan output tempatan dengan betul.
Dua rentetan, satu serta-merta — 10:00:00Z dan 12:00:00+02:00 bersebelahan, dan pembaca yang menganggap mereka selang dua jam
`2025-02-03T10:00:00Z` dan `2025-02-03T12:00:00+02:00` menamakan satu seketika. Rentetan kedua menunjukkan jam dinding dua jam lebih awal dan membekalkan offset yang diperlukan untuk menolak jam tersebut. Membaca sahaja medan jam mencipta jurang fiksyen antara peristiwa serentak.
ToolAcre menghantar kedua-dua rentetan ke Tarikh dan mengembalikan saat epok, milisaat zaman dan rentetan UTC ISO berkanun. Keputusan angka yang sama adalah perbandingan yang menentukan. Muka jam yang berubah tidak membayangkan masa berlalu yang berubah apabila penunjuk di penghujung mengambil kira perbezaan itu.
Prosedur perbandingan yang selamat adalah untuk menormalkan setiap rentetan kepada epoch milisaat dahulu. Jika integer tersebut sepadan, perbezaan jam yang ketara ialah perwakilan dan bukannya masa berlalu.
Anatomi ISO 8601 tarikh-masa — tarikh, pemisah T, masa, saat pecahan dan penunjuk zon
Nilai ISO yang dihasilkan alat ini mempunyai tarikh kalendar, `T`, medan jam-minit-saat, pecahan milisaat tiga digit dan mengekori `Z`. Bentuk tepat ini datang daripada `toISOString()`. Pengendalian input adalah lebih luas kerana Tarikh menghuraikan rentetan yang dibekalkan, tetapi mesej ralat mengesyorkan nilai eksplisit seperti `2024-03-01T09:30:00Z`.
Pemisah menjadikan bahagian boleh dibaca; penentu terminal membuat penentu segera. Pecahan memperhalusi kedudukan dalam satu saat tanpa mengubah zon. Apabila membandingkan output API, pastikan penunjuk akhir dilampirkan. Memotong tangkapan skrin sebelum mengalih keluar maklumat yang diperlukan untuk memetakan jam kepada UTC.
Z untuk Zulu — mengapa Z bermaksud UTC, asalnya dalam zon waktu ketenteraan dan penerbangan, dan mengapa ia tidak sama dengan tiada penunjuk
Dalam pelaksanaan ini, `Z` dikesan sebagai zon eksplisit dan `toISOString()` menggunakannya untuk UTC. Akaun asal tentera buku kerja tidak didokumenkan dalam repositori, jadi artikel ini tidak mengulanginya sebagai sejarah bersumber. Fakta operasi adalah lebih sempit dan boleh diuji: Z mengekor menghalang andaian masa tempatan.
Tiada penunjuk bukan ejaan Z yang lain. ToolAcre menetapkan `assumedLocal` untuk masa tarikh yang tiada Z atau pengimbangan berangka, kemudian memberitahu pengguna zon pelayar yang membekalkan tafsiran. Menggantikan akhiran yang hilang dengan Z mengubah segera yang dimaksudkan apabila jam asal dimaksudkan sebagai tempatan.
Dalam penukar ini, Z menandakan borang UTC; sejarah penamaannya adalah di luar bukti repositori
Akhiran seperti `+02:00` merekodkan perbezaan antara jam bertulis dan UTC pada ketika itu. Ia tidak mengenal pasti bandar. Banyak wilayah boleh berkongsi offset dan rantau boleh menggunakan offset lain pada tarikh lain. Rentetan mengekalkan bacaan, bukan peraturan politik yang menghasilkannya.
Had itu penting dalam jadual berulang. API boleh melaporkan dengan tepat masa lalu dengan `+02:00`, namun akhiran sahaja tidak boleh mengira mesyuarat 09:00 musim sejuk akan datang. Penukaran zaman memerlukan sahaja offset yang dibekalkan; penjadualan masa dinding masa hadapan memerlukan zon bernama dan logik sedar peraturan di luar panel ini.
Contoh berfungsi: satu zaman, dua bacaan — nilai UTC dan nilai setempat yang ditunjukkan oleh penukar dan mengesahkan bahawa mereka menamakan segera yang sama
Gunakan zaman 1,738,577,600 saat untuk semakan artikel ini. Penukar menjadikan `2025-02-03T10:00:00.000Z`. Rentetan sumber `2025-02-03T12:00:00+02:00` bertukar kembali kepada kiraan yang sama kerana bacaan dinding dua jam kemudiannya diimbangi dengan mengimbangi positif dua jam.
Baris pelayar-tempatan mungkin memaparkan masa jam ketiga. Itu tidak mewujudkan acara ketiga; ia adalah satu lagi pas pemformatan melebihi 1,738,577,600,000 milisaat. Sahkan identiti dengan saat atau ISO, kemudian gunakan setiap jam berlabel sahaja untuk khalayak yang diwakili oleh zon itu.
Kesamaan ini juga boleh menjadi lekapan regresi: menghuraikan kedua-dua rentetan sumber dan menegaskan satu nilai zaman. Ujian itu menjaga aritmetik mengimbangi tanpa menyematkan prosa paparan bergantung setempat.
Penanda yang hilang — 2024-05-01T10:00:00 kosong adalah samar-samar, dan cara bahasa berbeza mentafsirkannya
Kes penunjuk yang hilang memerlukan satu penyempurnaan. Tarikh kosong seperti `2025-02-03` dibaca sebagai UTC di bawah peraturan ECMAScript yang dilaksanakan dan diuji di sini. Masa tarikh kosong seperti `2025-02-03T10:00:00` dibaca sebagai setempat dan dibenderakan. Memanggil kedua-duanya sahaja "samar-samar" akan bercanggah dengan kod tersebut.
Bentuk selamat praktikal untuk pertukaran segera masih termasuk Z atau offset. Masa tarikh tempatan boleh disengajakan apabila dimasukkan melalui kawalan `datetime-local` panel, tetapi salin rentetan ISO yang terhasil sebelum berkongsinya. Penukaran itu merekodkan serta-merta persekitaran semasa yang diperoleh daripada jam dinding.
Penanda yang hilang tidak selalu samar-samar: pelaksanaan ini membezakan tarikh dengan tarikh-masa
ISO 8601 merangkumi lebih banyak notasi daripada yang ditunjukkan oleh penukar ini, tetapi repositori tidak menyediakan parser atau ujian untuk selang waktu, tempoh atau tarikh minggu. Penerimaan tarikh boleh berbeza mengikut platform untuk rentetan di luar contoh didokumenkan yang boleh dipercayai. Oleh itu, artikel ini mengelak daripada membentangkan panel sebagai pengesah tatabahasa ISO umum.
Jika kontrak API membenarkan borang tarikh khusus, sahkannya dengan penghurai API itu. Laluan tarikh-ke-zaman ToolAcre sesuai dengan masa tarikh yang jelas dan bentuk pemilih setempat yang dipancarkannya. Penghuraian Tarikh yang berjaya membuktikan pelayar ini menerima rentetan, bukannya setiap pengguna yang mematuhi piawaian mesti menerimanya.
Tempoh, selang waktu dan tarikh minggu adalah di luar input yang diterima yang ditunjukkan di sini
Baca cap masa sehingga akhirannya sebelum membandingkan medan jam. Z melabuhkan jam bertulis ke UTC; offset berangka membekalkan aritmetik kembali kepada UTC; tarikh-masa tanpa zon meminta pelayar menggunakan tafsiran setempat. Pengakhiran ini menjawab soalan yang berbeza walaupun awalan yang kelihatan serupa.
Penukar melabelkan output sejagat yang dijana dan melaporkan apabila ia mengandaikan waktu tempatan. Gunakan notis tersebut sebagai sebahagian daripada hasil, bukan hiasan. Nilai jam yang disalin tanpa penunjuknya ialah bukti yang tidak lengkap, manakala baris ISO zaman atau kanonik mengekalkan serta-merta utuh merentas pembaca.