العربية

أدوات المطور · محول الطابع الزمني يونكس

ثواني أم ميلي ثانية؟ إخبار حقبة مكونة من 10 من رقم من 13 من رقم

· كيف يعمل

الطوابع الزمنية وقت يونكس سير عمل المطور

قيمة الثواني المكونة من عشرة أرقام وقيمة المللي ثانية المكونة من ثلاثة عشر رقمًا تشير إلى لحظة واحدة
الرسم التوضيحي المتجه الأصلي ToolAcre

معظم قيم العصر التي تواجهها اليوم هي إما عشرة أرقام (ثواني) أو ثلاثة عشر رقمًا (مللي ثانية)، والتخمين الخاطئ يضع تاريخًا بعد عشرات الآلاف من السنين. يشرح هذا المنشور العملية الحسابية وراء أعداد الأرقام ولماذا يجب على المحول أن يذكر الوحدة بدلاً من استنتاجها.

1700000000 أو 1700000000000؟ - نفس اللحظة مكتوبة بطريقتين، ولوحة القيادة التي تظهر تاريخًا في المستقبل البعيد

يمكن لقيمة السجل 1700000000 وقيمة الحمولة 1700000000000 أن تصف نفس اللحظة. تعامل مع الأول على أنه ميلي ثانية وستقع لوحة المعلومات الخاصة بك في يناير 1970؛ تعامل مع الثانية على أنها ثواني وسيقفز تاريخها آلاف السنين إلى المستقبل. الطابع الزمني هو مجرد عدد بالإضافة إلى وحدة ونقطة بداية، لذا فإن عمود قاعدة البيانات المسمى create_at بدون وثائق قد حذف المعلومات الأساسية.

لماذا تتكون أعداد الثواني الحالية من عشرة أرقام - الثانية المليار في 2001، والنطاق المكون من عشرة أرقام يمتد إلى 2286، وماذا تعني الأرقام التسعة

يقوم نظام Unix بحساب الثواني المنقضية من 1970-01-01 00:00:00 UTC بموجب اتفاقية POSIX المعتادة. تجاوز العداد المليار في 2001؛ بالنسبة للتواريخ الإيجابية المعاصرة، عادةً ما تكون عشرة أرقام عشرية. ويبقى عشرة أرقام حتى يصل إلى عشرة مليارات في 2286. هذه خاصية للتدوين العشري، وليست قاعدة مخبأة في سلسلة تاريخ ISO. القيم السالبة قبل العصر والتواريخ خارج الحاضر تبطل اختصارًا بسيطًا لعدد الأرقام.

لماذا تحتوي أعداد المللي ثانية على ثلاثة عشر — عامل ألف وثلاثة أرقام إضافية، ومن أين تأتي اصطلاحات JavaScript وJava

JavaScript Date.getTime() يقوم عادةً بحساب المللي ثانية، وضرب الطابع الزمني للثواني في 1,000. ثلاثة أصفار تجعل العد الثاني الحالي المكون من عشرة أرقام يتحول إلى ثلاثة عشر رقمًا بالمللي ثانية. على سبيل المثال، 1,700,000,000 ثانية تصبح 1,700,000,000,000 مللي ثانية؛ كلاهما 2023-11-14T22:13:20.000Z. المحول الذي يقوم فقط بإدراج فواصل دون ذكر الوحدة المفترضة قد يحول رقمًا صالحًا إلى تاريخ معقول ولكنه خاطئ.

عندما يحدث خطأ في التخمين - القيم الصغيرة القريبة من العصر، والتواريخ قبل 2001، والتواريخ المستقبلية حيث يتوقف عدد الأرقام عن التمييز

تفشل الاستدلالات بالقرب من 1970 عندما تكون قيمة المللي ثانية قصيرة، أو قبل 2001 عندما تحتوي الثواني على أقل من عشرة أرقام، أو مع عدادات ميكروثانية ونانو ثانية. ToolAcre الافتراضي هو تفسير المقادير أدناه 10¹¹ بالثواني والقيم الأكبر بالمللي ثانية، وتسمية الوحدة المستخدمة. هذه العتبة هي تخمين عملي، وليست وحدة فك ترميز تنسيق لا لبس فيها. يجب تفسير الطابع الزمني المقدم بواسطة API المحدد باستخدام وثائق API حتى عندما يكون طوله غير معتاد.

مثال عملي: ثلاث قيم من سجل واحد — 1700000000، و1700000000000، و1700000000000000، تُقرأ بالثواني والميلي ثانية والميكرو ثانية

ثلاثة أعداد صحيحة من سجل توضيحي تظهر الفخ. قم بتفسير 1700000000 بالثواني و1700000000000 بالمللي ثانية: كلاهما يتحول إلى 2023-11-14T22:13:20Z. قم بتفسير 1700000000000000 على أنها ميكروثانية واقسمها على مليون للحصول على نفس عدد الثواني. يقبل المحول ToolAcre الثواني أو المللي ثانية، وليس وضع الميكروثانية: لصق هذا الرقم الثالث دون تحويل وحدته أولاً لن يؤكد اللحظة المقصودة. احتفظ دائمًا بالحقل الخام ووحدته معًا أثناء تصحيح الأخطاء.

لماذا يجب ذكر الوحدة، وليس تخمينها - كيف يُظهر المحول الوحدة التي طبقها بحيث يكون الافتراض الخاطئ مرئيًا وليس صامتًا

يجب أن تقوم الخدمة التي ترسل الطوابع الزمنية بتسمية الوحدة في مخططها أو استخدام نص ISO 8601 مع إزاحة صريحة. إذا كان الحقل القديم غير موثق، فقم بمقارنة عدة قيم مع وقت حدث آخر موثوق به قبل اتخاذ القرار؛ إن التاريخ الوحيد المعقول بالصدفة ليس دليلاً كافياً. يعرض المحول الوحدة التي تم تطبيقها، مما يتيح لك فرصة اكتشاف خطأ 1,000. قم بتغيير الوحدة بشكل صريح وقارن بدلاً من الاعتماد على التخمين التلقائي كعقد طويل الأجل API.

ما لا يغطيه هذا - الطوابع الزمنية المخزنة كسلاسل، ISO 8601 نص أو تواريخ تسلسلية لجدول البيانات، وهي مشاكل مختلفة

لا تشرح هذه المقالة التواريخ التسلسلية لـ Excel، أو السلاسل مثل 2026-09-28T10:15Z، أو تنسيق المنطقة الزمنية لقراءات الساعة المحلية. تلك تمثيلات مختلفة. تشير الطوابع الزمنية لنظام Unix إلى لحظة؛ تظهر نفس اللحظة كأوقات مختلفة لساعة الحائط في مناطق مختلفة. تستحق اصطلاحات الثانية الكبيسة أيضًا معالجة منفصلة، ​​ويواجه العداد الموقع ذو 32 بت مشكلة تجاوز السعة في 2038 والتي تختلف عن سؤال الثواني مقابل المللي ثانية.

الوجبات الجاهزة: قم بعد الأرقام، ثم قم بتأكيد الوحدة - وكيف يقرأ محول الطابع الزمني لنظام Unix كلاً من الثواني والميلي ثانية مع تسمية الوحدة

قم بعد الأرقام كتلميح أولي، ثم قم بتأكيد الوحدة المعلنة للمنتج وحدث واحد معروف على الأقل. محول الطابع الزمني لنظام Unix يجعل افتراض الثواني /milliseconds المطبق مرئيًا ويطبع كلاً من UTC والتمثيلات المحلية في متصفحك. لا تدع تاريخًا أنيقًا يلغي الوثائق المخالفة من النظام الذي أنتج القيمة.