أدوات المطور · محول الطابع الزمني يونكس
ماذا يعني حرف Z: UTC، والإزاحات والمحددات في ISO 8601 الطوابع الزمنية
· كيف يعمل
الطوابع الزمنية ايزو-8601 المناطق الزمنية
تقوم المحولات وواجهات برمجة التطبيقات بطباعة اللحظات الفورية كسلاسل ISO 8601، والحرف Z اللاحق أو الإزاحة هو الجزء الذي يتخطاه الأشخاص. يشرح هذا المنشور التنسيق قطعة قطعة حتى تتمكن من قراءة UTC والإخراج المحلي بشكل صحيح.
سلسلتان، لحظة واحدة — 10:00:00Z و12:00:00+02:00 جنبًا إلى جنب، والقارئ الذي يعتقد أن بينهما ساعتين
`2025-02-03T10:00:00Z` و`2025-02-03T12:00:00+02:00` قم بتسمية لحظة واحدة. تُظهر السلسلة الثانية ساعة حائط أمامك بساعتين وتوفر الإزاحة اللازمة لطرح تلك الساعات. قراءة مجال الساعة فقط تخلق فجوة خيالية بين الأحداث المتزامنة.
يقوم ToolAcre بتمرير كلا السلسلتين إلى Date وإرجاع فترة الثواني والمللي ثانية وسلسلة UTC ISO الأساسية. النتائج الرقمية المتساوية هي المقارنة الحاسمة. لا يعني تغيير وجه الساعة تغيير الوقت المنقضي عندما يفسر المُحدد في النهاية الفرق.
إجراء المقارنة الآمنة هو تسوية كل سلسلة إلى المللي ثانية أولاً. إذا تطابقت هذه الأعداد الصحيحة، فإن الفرق الظاهري على مدار الساعة هو تمثيل وليس الوقت المنقضي.
تشريح ISO 8601 التاريخ والوقت - التاريخ والفاصل T والوقت والثواني الكسرية ومحدد المنطقة
تحتوي قيمة ISO التي تم إنشاؤها بواسطة الأداة على تاريخ تقويمي، `T`، وحقول ساعة ودقيقة وثانية، وكسر من ثلاثة أرقام بالمللي ثانية وزائدة `Z`. يأتي هذا الشكل الدقيق من `toISOString()`. معالجة الإدخال أوسع لأن التاريخ يوزع السلسلة المتوفرة، لكن رسالة الخطأ توصي بقيمة صريحة مثل `2024-03-01T09:30:00Z`.
الفواصل تجعل الأجزاء مقروءة؛ محدد المحطة يجعل اللحظة محددة. تعمل الكسور على تحسين الموضع خلال ثانية واحدة دون تغيير المنطقة. عند مقارنة مخرجات API، احتفظ بالرمز النهائي مرفقًا. اقتطاع لقطة الشاشة قبل أن تزيل المعلومات المطلوبة لتعيين الساعة إلى UTC.
Z لـ Zulu - لماذا تعني Z UTC، وأصلها في المناطق الزمنية العسكرية ومناطق الطيران، ولماذا لا تشبه عدم وجود مُحدد
ضمن هذا التنفيذ، تم اكتشاف `Z` كمنطقة صريحة ويستخدمها `toISOString()` لـ UTC. لم يتم توثيق حساب الأصل العسكري للمصنف في المستودع، لذلك لا تكرره هذه المقالة كمحفوظات مصدر. والحقيقة العملية أضيق وقابلة للاختبار: حيث تمنع Z الزائدة افتراض التوقيت المحلي.
لا يعد أي محدد تهجئة أخرى لـ Z. ToolAcre يعين `assumedLocal` لتاريخ ووقت يفتقر إلى Z أو إزاحة رقمية، ثم يخبر المستخدم بمنطقة المتصفح التي قدمت التفسير. يؤدي استبدال اللاحقة المفقودة بـ Z إلى تغيير اللحظة المقصودة عندما يكون من المفترض أن تكون الساعة الأصلية محلية.
في هذا المحول، تضع Z علامة على النموذج UTC؛ تاريخ التسمية الخاص به خارج دليل المستودع
تسجل اللاحقة مثل `+02:00` الفرق بين الساعة المكتوبة وUTC في تلك اللحظة. ولا يحدد المدينة. يمكن للعديد من المناطق مشاركة الإزاحة، ويمكن للمنطقة استخدام إزاحة أخرى في تاريخ آخر. يحافظ الخيط على القراءة، وليس على القواعد السياسية التي أنتجتها.
هذا القيد مهم في الجداول الزمنية المتكررة. يمكن لـ API أن يقدم تقريرًا دقيقًا عن لحظة سابقة باستخدام `+02:00`، إلا أن اللاحقة وحدها لا يمكنها حساب اجتماع 09:00 في الشتاء القادم. يحتاج تحويل العصر إلى الإزاحة المتوفرة فقط؛ تحتاج جدولة وقت الجدار المستقبلية إلى منطقة محددة ومنطق مدرك للقواعد خارج هذه اللوحة.
مثال عملي: حقبة واحدة، قراءتان — القيمة UTC والقيمة المحلية التي يعرضها المحول، والتأكيد على تسمية نفس اللحظة
استخدم الفترة 1,738,577,600 ثانية للتحقق من هذه المقالة. يعرض المحول `2025-02-03T10:00:00.000Z`. يتم تحويل سلسلة مصدر من `2025-02-03T12:00:00+02:00` مرة أخرى إلى نفس العدد لأن قراءة الجدار بعد ساعتين تتم موازنةها بإزاحة الساعتين الموجبة.
قد يعرض الصف المحلي للمتصفح وقت الساعة الثالثة. وهذا لا يخلق حدثًا ثالثًا؛ إنه تنسيق آخر تم تمريره خلال 1,738,577,600,000 مللي ثانية. تحقق من الهوية بالثواني أو ISO، ثم استخدم كل ساعة تحمل علامة فقط للجمهور الذي تمثل منطقته.
يمكن أن تصبح هذه المساواة أيضًا أداة انحدار: قم بتحليل كلا السلاسل المصدرية وتأكيد قيمة عصر واحدة. يحمي هذا الاختبار حساب الإزاحة دون تثبيت نثر العرض المعتمد على اللغة.
المُحدد المفقود — 2024-05-01T10:00:00 غامض، وكيف تفسره اللغات المختلفة
تحتاج حالة المُحدد المفقود إلى تحسين واحد. تتم قراءة التاريخ المكشوف مثل `2025-02-03` كـ UTC بموجب قاعدة ECMAScript التي تم تنفيذها واختبارها هنا. تتم قراءة التاريخ والوقت المجرد مثل `2025-02-03T10:00:00` على أنه محلي ويتم وضع علامة عليه. إن تسمية كليهما ببساطة بـ "غامض" من شأنه أن يتعارض مع الكود.
لا يزال النموذج الآمن العملي للحظة التبادل يتضمن Z أو الإزاحة. يمكن أن يكون التاريخ والوقت المحلي مقصودًا عند إدخاله من خلال عنصر التحكم `datetime-local` باللوحة، ولكن انسخ سلسلة ISO الناتجة قبل مشاركته. يسجل هذا التحويل البيئة الحالية المستمدة من ساعة الحائط.
لا يكون المُحدد المفقود غامضًا دائمًا: فهذا التطبيق يميز التواريخ عن أوقات التاريخ
ISO 8601 يغطي تدوينًا أكثر مما يوضحه هذا المحول، لكن المستودع لا يوفر محللين أو اختبارات للفواصل الزمنية أو الفترات أو تواريخ الأسبوع. يمكن أن يختلف قبول التاريخ حسب النظام الأساسي للسلاسل خارج الأمثلة الموثقة الموثوقة. وبالتالي، تتجنب هذه المقالة تقديم اللوحة كمدقق نحوي عام ISO.
إذا كان عقد API يسمح بنموذج تاريخ متخصص، فقم بالتحقق من صحته باستخدام المحلل اللغوي API. يتناسب مسار ToolAcre من التاريخ إلى العصر مع أوقات التاريخ الصريحة وشكل المنتقي المحلي الذي ينبعث منه. يثبت تحليل التاريخ الناجح أن هذا المتصفح قد قبل سلسلة، وليس أن كل مستهلك مطابق للمعايير يجب أن يقبلها.
المدد والفواصل الزمنية وتواريخ الأسبوع خارج نطاق الإدخال المقبول الموضح هنا
اقرأ الطابع الزمني حتى لاحقته قبل مقارنة حقول الساعة. Z يثبت الساعة المكتوبة على UTC؛ الإزاحة الرقمية تزود العملية الحسابية مرة أخرى إلى UTC؛ يطلب التاريخ والوقت بدون منطقة من المتصفح استخدام الترجمة المحلية. تجيب هذه النهايات على أسئلة مختلفة على الرغم من البادئات المتشابهة.
يقوم المحول بتسمية المخرجات العالمية التي تم إنشاؤها والتقارير عندما يفترض التوقيت المحلي. استخدم تلك الإشعارات كجزء من النتيجة، وليس الزخرفة. تعتبر قيمة الساعة المنسوخة بدون مُحددها دليلاً غير كامل، في حين أن الصف ISO الأساسي أو العصري يحافظ على اللحظة سليمة عبر القراء.