محوّل التاريخ والوقت

حوّل بين طوابع Unix الزمنية ومللي ثانية JavaScript و ISO 8601 و ISO 9075 و RFC 3339 و RFC 7231 و Mongo ObjectID والتواريخ التسلسلية في Excel. يكتشف صيغة الإدخال تلقائيًا.

حوّل لحظة واحدة في الوقت إلى كل صيغة قد تحتاجها.

شرح صيغ الطوابع الزمنية

الثواني أو المللي ثانية

الخطأ الأكثر شيوعًا عند التعامل مع التواريخ هو الخلط بينهما. تحسب طوابع Unix الزمنية الثواني منذ 1970-01-01 UTC؛ بينما تحسب Date.now() في JavaScript المللي ثانية. إذا مررت طابع Unix زمني مباشرة إلى مُنشئ Date دون الضرب في 1000، فستجد نفسك في يناير 1970. كقاعدة عامة، الرقم المكون من 10 أرقام هو بالثواني والرقم المكون من 13 رقمًا هو بالمللي ثانية، وهذا هو بالضبط كيف يقرر الكشف التلقائي هنا.

المعايير وكيف تختلف

  • ISO 8601 هو المعيار الأساسي: 2024-01-15T10:30:00.000Z. يفصل الحرف T بين التاريخ والوقت ويعني Z منطقة UTC.
  • RFC 3339 هو ملف تعريف أكثر صرامة من ISO 8601 موجه لبروتوكولات الإنترنت. يتطلب إزاحة صريحة، لذا يكتب +00:00 بدلاً من Z.
  • ISO 9075 هو صيغة SQL القياسية، 2024-01-15 10:30:00 — مسافة بدلاً من T، ودون منطقة زمنية. وهذا ما تطبعه معظم قواعد البيانات.
  • RFC 7231 هو صيغة تاريخ HTTP المستخدمة في ترويسات Date و Expires و Last-Modified، دائمًا بتوقيت GMT.

الحالتان الاستثنائيتان

Mongo ObjectID هو 12 بايتًا، والأربعة الأولى منها هي وقت الإنشاء بالثواني وفقًا لـ Unix، لذا يحمل كل ObjectID طابعًا زمنيًا بداخله. تستخرج هذه الأداة ذلك عند فك الترميز؛ وعند توليده فإنها تملأ البايتات الثمانية المتبقية بالأصفار بدلاً من اختراع قيم للجهاز والعداد.

التواريخ التسلسلية في Excel تحسب الأيام منذ 1899-12-30، مع تمثيل الجزء الكسري للوقت من اليوم. العصر الاستثنائي موجود لأن Excel يعيد إنتاج خطأ Lotus 1-2-3 عن قصد الذي تعامل مع 1900 كسنة كبيسة. استخدام 1899-12-30 كاليوم الصفري يجعل كل تاريخ من مارس 1900 فصاعدًا يتطابق بشكل صحيح، ولهذا يستخدمه هذا المحوّل.

كل شيء هو لحظة واحدة

مهما كتبت، تحلل الأداة ذلك إلى كائن Date واحد في JavaScript وتعيد عرض تلك اللحظة الواحدة في جميع الصيغ الحادية عشرة. لا يُرسل أي شيء إلى أي مكان — يعمل التحويل بالكامل في متصفحك.

الأسئلة الشائعة

لماذا يعرض طابع Unix الزمني الخاص بي 1970؟
من شبه المؤكد أنك مررت ثوانٍ حيث كانت المللي ثانية مطلوبة. اضرب في 1000، أو اختر "ثواني Unix" كصيغة الإدخال لتتعامل الأداة مع ذلك نيابةً عنك.
ما الفرق بين ISO 8601 و RFC 3339؟
RFC 3339 هو مجموعة فرعية أكثر صرامة من ISO 8601 لبروتوكولات الإنترنت. كل تاريخ RFC 3339 هو ISO 8601 صالح، ولكن ليس العكس — يتطلب RFC 3339 دائمًا إزاحة UTC رقمية مثل +00:00، بينما يسمح ISO 8601 أيضًا بـ Z وتواريخ الأسابيع والتواريخ الترتيبية.
هل يمكنني الحصول على طابع زمني من Mongo ObjectID؟
نعم. أول 4 بايتات (8 أحرف سداسية عشرية) من ObjectID هي وقت الإنشاء بالثواني وفقًا لـ Unix. الصق الـ ObjectID وستفك الأداة ترميز تلك اللحظة إلى كل صيغة أخرى.
لماذا عصر Excel هو 1899-12-30 وليس 1900-01-01؟
أبقى Excel عن قصد على خطأ Lotus 1-2-3 الذي يعامل 1900 كسنة كبيسة. إزاحة العصر للخلف إلى 1899-12-30 تلغي الخطأ الناتج عن النقص بمقدار واحد، لذا تتحول كل التواريخ من مارس 1900 فصاعدًا بشكل صحيح.
هل تُرسل بياناتي إلى خادم؟
لا. كل التحليل والتنسيق يحدث محليًا في متصفحك باستخدام واجهة Date القياسية. لا يتم رفع أي شيء أو تسجيله.