محول الطابع الزمني يونكس
حوّل الطابع الزمني يونكس بالثواني أو بالملّي ثانية إلى تاريخ مقروء بالتوقيت المحلي و UTC و ISO 8601، وحوّل أي تاريخ إلى وقت epoch.
طابع زمني ← تاريخ
- التوقيت المحلي
- –
- UTC
- –
- ISO 8601
- –
تاريخ ← طابع زمني
- الثواني
- –
- الملّي ثواني
- –
كيف تستخدم محول الطابع الزمني يونكس
- لتحويل طابع زمني إلى تاريخ، الصق قيمة epoch مثل
1700000000أو1700000000000في خانة الطابع الزمني (بالثواني أو بالملّي ثانية). تكتشف الأداة من حجم العدد هل هو بالثواني أم بالملّي ثانية. - اقرأ النتيجة بـالتوقيت المحلي، وبتوقيت UTC، وبصيغة ISO 8601.
- للتحويل في الاتجاه المعاكس، أدخل التاريخ والوقت واختر المنطقة الزمنية؛ فتعيد الأداة قيمة epoch المقابلة بـالثواني وبـالملّي ثواني معًا.
- ألقِ نظرة على الطابع الزمني الحالي في الأعلى، فهو يتحدّث مباشرةً، كلما احتجت إلى قيمة «الآن» بصيغة epoch.
ما هو الطابع الزمني يونكس؟
الطابع الزمني يونكس (Unix timestamp)، ويُسمّى أيضًا وقت epoch أو وقت POSIX، هو عدد الثواني المنقضية منذ حقبة يونكس: 1 يناير 1970 عند الساعة 00:00:00 بتوقيت UTC. فمثلًا، يوافق 1700000000 يوم 14 نوفمبر 2023 عند الساعة 22:13:20 بتوقيت UTC. أما التواريخ السابقة لعام 1970 فتُمثَّل بأعداد سالبة.
يحبّ المطوّرون الطوابع الزمنية لأنها عدد واحد لا يتأثر بالمناطق الزمنية ولا بالتوقيت الصيفي ولا بصيغ التواريخ. فالمقارنة بين لحظتين مجرد عملية طرح، والترتيب الزمني مجرد ترتيب رقمي. ستجدها في قواعد البيانات، وملفات السجلات، واستجابات واجهات API، ومطالبات JWT مثل exp و iat، وبيانات الملفات الوصفية، وأدوات الجدولة المشابهة لـ cron.
لاحظ أن وقت يونكس يتجاهل الثواني الكبيسة: كل يوم يُحسب 86400 ثانية بالضبط. هذا يبقي الحساب بسيطًا، ولهذا السبب لا يُعدّ الطابع الزمني عدًّا دقيقًا لكل ثانية فعلية منذ 1970.
الثواني أم الملّي ثواني؟
أكثر مصادر الالتباس شيوعًا هو الوحدة. تستخدم أنظمة يونكس التقليدية و PHP و time.time() في Python ومعظم قواعد البيانات الثواني، ما يعطي اليوم عددًا من 10 أرقام. أما Date.now() في JavaScript و System.currentTimeMillis() في Java وكثير من واجهات JSON فتستخدم الملّي ثواني، ما يعطي عددًا من 13 رقمًا. إذا فسّرت الملّي ثواني على أنها ثوانٍ وجدت نفسك بعد عشرات آلاف السنين في المستقبل، وإذا فسّرت الثواني على أنها ملّي ثوانٍ وجدت نفسك في يناير 1970. تنظر هذه الأداة إلى حجم العدد لتختار الوحدة الصحيحة تلقائيًا، وعند تحويل تاريخ تعرض القيمتين معًا لتنسخ ما يتوقعه نظامك.
التوقيت المحلي و UTC و ISO 8601
يحدّد الطابع الزمني لحظة واحدة دقيقة، لكن هذه اللحظة تُعرض بشكل مختلف حسب المنطقة الزمنية. تستخدم النتيجة المحلية المنطقة الزمنية المضبوطة على جهازك، بينما UTC هو المرجع العالمي الذي تستخدمه الخوادم والسجلات. أما ISO 8601، مثل 2023-11-14T22:13:20.000Z، فهي الصيغة النصية الواضحة الموصى بها لتبادل التواريخ بين الأنظمة، وحرف Z في آخرها يعني UTC.
مشكلة عام 2038
تخزّن أنظمة قديمة كثيرة وقت يونكس في عدد صحيح بإشارة بطول 32 بت، أقصى قيمة له 2147483647. يُبلَغ هذا الحد في 19 يناير 2038 عند الساعة 03:14:07 بتوقيت UTC. وبعد ثانية واحدة يفيض العدّاد إلى عدد سالب كبير ويُقرأ كتاريخ في ديسمبر 1901. انتقلت أنظمة التشغيل وقواعد البيانات واللغات الحديثة في معظمها إلى قيم زمنية بطول 64 بت تدفع الحد مليارات السنين إلى المستقبل، لكن الأجهزة المدمجة وصيغ الملفات القديمة وأعمدة قواعد البيانات العتيقة قد تظل متأثرة. أما JavaScript نفسها فلا تتأثر، لأنها تخزّن الوقت بالملّي ثانية في عدد عشري بطول 64 بت.
الخصوصية
تجري كل عمليات التحويل في متصفحك باستخدام دوال التاريخ المدمجة فيه. لا يُرسل أي طابع زمني أو تاريخ إلى خادم.
الأسئلة الشائعة
كيف أعرف هل الطابع الزمني بالثواني أم بالملّي ثانية؟
عُدّ الأرقام. التاريخ الحالي يتكوّن من 10 أرقام بالثواني و13 رقمًا بالملّي ثانية. تطبّق الأداة المنطق نفسه تلقائيًا بناءً على حجم العدد.
لماذا يختلف التوقيت المحلي عن UTC؟
كلاهما يصف اللحظة نفسها. يطبّق التوقيت المحلي فارق المنطقة الزمنية لجهازك وقواعد التوقيت الصيفي، بينما لا يحمل UTC أي فارق. إذا شاركت موعدًا مع أشخاص في أماكن أخرى، فاستخدام UTC أو ISO 8601 يجنّبك سوء الفهم.
هل يمكن أن يكون الطابع الزمني يونكس سالبًا؟
نعم. تمثّل القيم السالبة لحظات سابقة لـ 1 يناير 1970 بتوقيت UTC. فمثلًا، -86400 هو 31 ديسمبر 1969 عند الساعة 00:00:00 بتوقيت UTC.
هل يحتوي الطابع الزمني يونكس على منطقة زمنية؟
لا. الطابع الزمني نسبي دائمًا إلى UTC ولا يحمل أي معلومة عن المنطقة الزمنية. لا تهمّ المنطقة الزمنية إلا عند عرضه كتاريخ ووقت في التقويم.
هل ستتعطّل أنظمتي في عام 2038؟
فقط إذا كانت تخزّن الوقت في عدد صحيح بإشارة بطول 32 بت. افحص قواعد البيانات القديمة والبرامج الثابتة للأجهزة المدمجة وصيغ الملفات الثنائية. أي نظام يستخدم وقتًا بطول 64 بت آمن في المستقبل المنظور.