> طابع زمني | epoch | تحويل <
// حوّل الطوابع الزمنية Unix إلى تواريخ والتواريخ إلى طوابع زمنية فورًا
ساعة فورية
عرض الطابع الزمني Unix محدّث في الوقت الفعلي. شاهد وقت epoch الحالي فورًا.
تحويل ثنائي الاتجاه
حوّل الطوابع الزمنية إلى تواريخ مقروءة والتواريخ إلى طوابع زمنية. كلا الاتجاهين مدعوم.
تنسيقات متعددة
عرض النتائج بتنسيق ISO 8601 وRFC 2822 وUTC والوقت المحلي والوقت النسبي.
// حول الطوابع الزمنية UNIX
كيف تعمل الطوابع الزمنية Unix:
الطابع الزمني Unix (المعروف أيضًا بوقت epoch أو وقت POSIX) يمثل عدد الثواني المنقضية منذ 1 يناير 1970 00:00:00 UTC (حقبة Unix). توفر هذه القيمة الصحيحة البسيطة طريقة عالمية ومستقلة عن المناطق الزمنية لتمثيل لحظة محددة في الزمن.
مثال:
1711324800 → 2024-03-25T00:00:00.000Z
حالات الاستخدام الشائعة:
- >تخزين واستعلام الطوابع الزمنية في قواعد البيانات
- >حقول الوقت في استجابات API
- >تحليل الطوابع الزمنية في ملفات السجل
- >تصحيح المشاكل المتعلقة بالوقت
- >تنسيق الوقت عبر المناطق الزمنية
- >مشكلة Y2K38: الأعداد الصحيحة 32 بت تتجاوز في 19 يناير 2038
>> الأسئلة الشائعة
س: ما هو الطابع الزمني Unix؟
ج: الطابع الزمني Unix هو عدد الثواني المنقضية منذ 1 يناير 1970 00:00:00 UTC. إنه قيمة صحيحة بسيطة تُستخدم عالميًا في الحوسبة.
س: ما هو وقت epoch؟
ج: وقت epoch هو اسم آخر للطابع الزمني Unix. «الحقبة» تشير إلى نقطة المرجع: 1 يناير 1970 00:00:00 UTC.
س: ما هي مشكلة Y2038؟
ج: مشكلة عام 2038 (Y2K38) تحدث لأن العديد من الأنظمة تخزن الطوابع الزمنية كأعداد صحيحة موقعة 32 بت، والتي يمكنها فقط تمثيل الأوقات حتى 19 يناير 2038 03:14:07 UTC.
س: ما الفرق بين الطوابع الزمنية بالثواني والمللي ثانية؟
ج: الطوابع الزمنية بالثواني تتكون من 10 أرقام (مثل: 1711324800)، بينما بالمللي ثانية 13 رقمًا (مثل: 1711324800000).
س: هل يمكن أن تكون الطوابع الزمنية Unix سالبة؟
ج: نعم، الطوابع الزمنية السالبة تمثل تواريخ قبل 1 يناير 1970. مثلاً، -86400 يمثل 31 ديسمبر 1969.
// ورقة مرجعية: طول الطابع الزمني
عدّ الأرقام لتعرف الوحدة. الخلط بين الثواني والملّي ثانية هو السبب الأكثر شيوعاً لظهور تاريخ خاطئ.
| الأرقام | الوحدة | مثال | المصدر المعتاد |
|---|---|---|---|
| 10 | s | 1711324800 | Unix/Linux, PHP time(), Stripe |
| 13 | ms | 1711324800000 | JavaScript Date.now(), Java |
| 16 | µs | 1711324800000000 | Kafka, Cassandra |
| 19 | ns | 1711324800000000000 | Go UnixNano(), InfluxDB |
// الحصول على الطابع الزمني الحالي في الشيفرة
JavaScript Math.floor(Date.now() / 1000) Python int(time.time()) PHP time() Go time.Now().Unix() Java Instant.now().getEpochSecond() Ruby Time.now.to_i Bash date +%s
>> المزيد من الأسئلة
س: هل الطابع الزمني Unix بتوقيت UTC أم التوقيت المحلي؟
ج: دائماً UTC. العدد الصحيح يمثل لحظة مطلقة بلا منطقة زمنية، ولا تُطبَّق المنطقة الزمنية إلا عند عرضه كتاريخ. خزّن بتوقيت UTC واعرض بالتوقيت المحلي.
س: لماذا يعرض الطابع الزمني تاريخاً خاطئاً؟
ج: غالباً يكون هناك خلط بين الثواني والملّي ثانية: قيمة من 13 رقماً تُقرأ كثوانٍ تعطي سنة 55000 تقريباً، وقيمة من 10 أرقام تُقرأ كملّي ثانية تعطي يناير 1970. تحقق أيضاً من تحويل المنطقة الزمنية ومن أن القيمة ليست FILETIME في Windows أو تاريخ Excel.
س: كيف تؤثر الثواني الكبيسة على الطوابع الزمنية Unix؟
ج: لا تؤثر. يحسب وقت Unix اليوم بـ 86,400 ثانية بالضبط ويتجاهل الثواني الكبيسة، فتُكرَّر أو تُوزَّع (leap smear). هذا يكفي لمعظم التطبيقات، وللقياس العلمي يُستخدم TAI.
س: هل توجد حقب زمنية أخرى غير Unix؟
ج: نعم: يستخدم NTP تاريخ 1900-01-01، و Windows FILETIME تاريخ 1601-01-01 (بخطوات 100 نانوثانية)، و Excel يعدّ الأيام منذ 1899-12-30، وكان Mac HFS+ يستخدم 1904-01-01. إذا كانت القيمة بعيدة جداً عن رقم Unix الحالي فربما تكون إحدى هذه الصيغ.