ByteCompress

محول الطوابع الزمنية

حوّل الطوابع الزمنية لنظام Unix (الثواني أو الميلي ثانية منذ بداية Unix) إلى سلاسل تاريخ ووقت قابلة للقراءة، وحوّل التواريخ مرة أخرى إلى الطوابع الزمنية لنظام Unix. يدعم UTC والمناطق الزمنية المحلية.

0 chars
FreeClient-sideNo signup

بدأ وقت Unix العد في 1 يناير 1970 00:00:00 UTC - بداية Unix. كل طابع زمني لنظام Unix هو عدد الثواني (أو الميلي ثانية في العديد من الأنظمة الحديثة) التي مرت منذ تلك اللحظة. تُستخدم الطوابع الزمنية في جميع أنحاء البرمجة، وقواعد البيانات، وواجهات برمجة التطبيقات لأنها مستقلة عن المناطق الزمنية، وقابلة للفرز كأعداد صحيحة، وسهلة المقارنة رياضيًا. قراءة 1711843200 كعدد خام لا تخبرك بشيء. يقوم هذا المحول بترجمته إلى 2024-03-31T00:00:00.000Z على الفور، باستخدام ISO 8601 - المعيار الدولي للتاريخ. جميع التحويلات تتم محليًا في متصفحك.

كيفية استخدام هذه الأداة

  1. الطابع الزمني إلى تاريخ: أدخل طابعًا زمنيًا لنظام Unix بالثواني أو الميلي ثانية - ستظهر الأداة التاريخ في UTC ومنطقتك الزمنية المحلية.
  2. التاريخ إلى الطابع الزمني: أدخل تاريخًا ووقتًا باستخدام محدد التاريخ، ثم انسخ الطابع الزمني الناتج بالثواني والميلي ثانية.
  3. انقر على الآن لملء الطابع الزمني الحالي للرجوع إليه.
  4. استخدم محدد التنسيق لعرض التواريخ في ISO 8601، RFC 2822، أو تنسيق قابل للقراءة.

فهم الطوابع الزمنية لنظام Unix

الثواني مقابل الميلي ثانية

هناك تقليدان مستخدمان على نطاق واسع. الوقت في نظام Unix بالثواني (10 أرقام اعتبارًا من 2024، مثل 1711843200) يستخدمه واجهات برمجة التطبيقات POSIX، time() في C/C++، time.time() في Python، ومعظم الأنظمة من جانب الخادم. الوقت في نظام Unix بالميلي ثانية (13 رقمًا، مثل 1711843200000) يستخدمه Date.now() في JavaScript، System.currentTimeMillis() في Java، والعديد من واجهات برمجة التطبيقات على الويب. قاعدة سريعة: 10 أرقام تعني ثواني؛ 13 رقمًا تعني ميلي ثانية. أكبر طابع زمني صحيح من نوع عدد صحيح موقّع 32 بت هو 2147483647 (ثواني)، والذي يتوافق مع 19 يناير 2038 - مشكلة عام 2038 للأنظمة القديمة.

تنسيق ISO 8601

ISO 8601 هو المعيار الدولي لتمثيلات التاريخ والوقت. التنسيق الكامل لـ UTC هو YYYY-MM-DDTHH:mm:ss.sssZ، حيث T يفصل بين التاريخ والوقت وZ يدل على UTC (وقت زولو). ISO 8601 هو التنسيق الموصى به لاستجابات واجهة برمجة التطبيقات وتبادل البيانات لأنه غير غامض، قابل للفرز بشكل قاموسي (ترتيب السلسلة يتطابق مع الترتيب الزمني)، وقابل للتحليل في كل لغة برمجة رئيسية.

مثال

الطابع الزمني إلى تاريخ

الإدخال (بالثواني):       1711843200
تاريخ UTC (ISO 8601):   2024-03-31T00:00:00.000Z
RFC 2822:              الأحد، 31 مارس 2024 00:00:00 +0000
قابل للقراءة (UTC):  الأحد، 31 مارس 2024 في 12:00:00 صباحًا UTC

التاريخ إلى الطابع الزمني

الإدخال:                 2024-03-31 00:00:00 UTC
Unix (بالثواني):        1711843200
Unix (بالميلي ثانية):   1711843200000

تنسيقات الطوابع الزمنية الشائعة

  • ثواني Unix (POSIX): 1711843200 - 10 أرقام، تستخدم في C، Python، Go، معظم واجهات برمجة التطبيقات للنظام
  • ميلي ثانية Unix: 1711843200000 - 13 رقمًا، تستخدم في JavaScript، Java، العديد من واجهات برمجة التطبيقات REST
  • ISO 8601 UTC: 2024-03-31T00:00:00Z - موصى به لاستجابات واجهة برمجة التطبيقات وتخزين البيانات
  • ISO 8601 مع إزاحة: 2024-03-31T03:00:00+03:00 - يتضمن إزاحة منطقة الوقت لوقت محلي غير غامض
  • RFC 2822: الأحد، 31 مارس 2024 00:00:00 +0000 - تستخدم في رؤوس البريد الإلكتروني ورأس Date في HTTP
  • مرجع Epoch Unix: 0 = 1970-01-01T00:00:00Z

أفضل الممارسات

  • قم بتخزين الطوابع الزمنية في UTC في قواعد البيانات - قم بالتحويل إلى الوقت المحلي فقط في طبقة العرض
  • استخدم ISO 8601 لاستجابات واجهة برمجة التطبيقات - فهو غير غامض وقابل للتحليل في جميع اللغات
  • يفضل استخدام الميلي ثانية بدلاً من الثواني للأنظمة الجديدة لتجنب الحسابات العشرية مع دقة أقل من الثانية
  • قم بترحيل تخزين الطوابع الزمنية 32 بت إلى 64 بت لتجنب مشكلة تجاوز عام 2038

للهويات الفريدة مع الطوابع الزمنية المدمجة، يجمع UUID v7 (RFC 9562) بين الطوابع الزمنية لنظام Unix بالميلي ثانية مع بتات عشوائية لخلق معرفات فريدة وقابلة للفرز - استخدم مولد UUID لـ UUID v4 عندما لا يكون ترتيب الفرز مطلوبًا. لتصحيح استجابات JSON التي تحتوي على الطوابع الزمنية، تجعل منسق JSON حقول الطوابع الزمنية المتداخلة قابلة للقراءة.

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

ما هو الطابع الزمني لنظام Unix؟

الطابع الزمني لنظام Unix هو عدد الثواني التي مرت منذ بداية Unix - منتصف الليل (00:00:00 UTC) في 1 يناير 1970 - باستثناء الثواني الكبيسة. إنه مستقل عن المناطق الزمنية، عدد صحيح بسيط، وسهل المقارنة والترتيب. الطوابع الزمنية لنظام Unix هي التمثيل الداخلي العالمي للوقت في أنظمة التشغيل، وقواعد البيانات، ولغات البرمجة.

كيف يمكنني معرفة ما إذا كان الطابع الزمني بالثواني أو الميلي ثانية؟

احسب الأرقام. اعتبارًا من 2024، الطوابع الزمنية لنظام Unix بالثواني تتكون من 10 أرقام (مثل 1700000000). الطوابع الزمنية بالميلي ثانية تتكون من 13 رقمًا (مثل 1700000000000). إذا كان الرقم أقل من حوالي 10 مليارات، فمن المحتمل أن يكون بالثواني. الطوابع الزمنية بدقة النانو ثانية (تستخدم في بعض الأنظمة عالية التردد) تتكون من 19 رقمًا.

ما هي مشكلة عام 2038؟

الأنظمة التي تخزن الطوابع الزمنية لنظام Unix كأعداد صحيحة موقعة 32 بت يمكنها تمثيل قيم تصل إلى 2,147,483,647 فقط. هذا الحد الأقصى يتوافق مع 19 يناير 2038 في 03:14:07 UTC. إضافة ثانية واحدة بعد ذلك يؤدي إلى تجاوز سعة العدد إلى رقم سالب كبير، مما يكسر حسابات التاريخ. الأنظمة الحديثة 64 بت آمنة حتى حوالي 292 مليار سنة من الآن.

هل يستخدم المحول منطقتي الزمنية المحلية؟

نعم. الأداة تعرض كل من UTC ووقتك المحلي. يتم تحديد الوقت المحلي من خلال إعداد منطقة الوقت في متصفحك، والذي يعكس إعداد منطقة الوقت في نظام التشغيل الخاص بك. إذا كان إعداد الساعة في نظامك غير صحيح أو كنت مسافرًا، فإن عرض الوقت المحلي يعكس ذلك.

كيف يمكنني الحصول على الطابع الزمني الحالي لنظام Unix في الكود؟

JavaScript: Math.floor(Date.now() / 1000) للثواني، أو Date.now() للميلي ثانية. Python: import time; int(time.time()). Go: time.Now().Unix() للثواني، time.Now().UnixMilli() للميلي ثانية. PostgreSQL: EXTRACT(EPOCH FROM NOW()). Bash: date +%s.