> طابع زمني | 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.
// قيم epoch المعروفة
نقاط مرجعية مفيدة عند تصحيح الطوابع الزمنية. جميع التواريخ بتوقيت UTC.
| قيمة epoch | التاريخ والوقت (UTC) |
|---|---|
| 0 | 1970-01-01 00:00:00 |
| 86400 | 1970-01-02 00:00:00 |
| 946684800 | 2000-01-01 00:00:00 |
| 1000000000 | 2001-09-09 01:46:40 |
| 1234567890 | 2009-02-13 23:31:30 |
| 1700000000 | 2023-11-14 22:13:20 |
| 2000000000 | 2033-05-18 03:33:20 |
| 2147483647 | 2038-01-19 03:14:07 |
| 4294967295 | 2106-02-07 06:28:15 |
// تحويل epoch إلى تاريخ في الشيفرة
JavaScript new Date(epoch * 1000).toISOString()
Python datetime.fromtimestamp(epoch, tz=timezone.utc)
PHP gmdate('c', $epoch)
Go time.Unix(epoch, 0).UTC()
Java Instant.ofEpochSecond(epoch)
MySQL FROM_UNIXTIME(epoch)
Bash date -u -d @$epoch # macOS: date -u -r $epoch
>> المزيد من الأسئلة
س: لماذا يبدأ وقت Unix في 1 يناير 1970؟
ج: اختار مطورو Unix الأوائل في مختبرات بيل نحو عام 1971 تاريخاً بسيطاً ومستديراً وحديثاً آنذاك ليبقى حجم العدّادات ذات 32 بت صغيراً. ثبت هذا الاختيار وأصبح اليوم الحقبة القياسية لمعظم الأنظمة.
س: كيف أحوّل epoch إلى تاريخ في Excel أو Google Sheets؟
ج: إذا كانت A1 تحتوي ثواني epoch فاستخدم =(A1/86400)+25569 وطبّق على الخلية تنسيق التاريخ والوقت. للملّي ثانية اقسم على 86400000. والعكس: =(A1-25569)*86400.
س: لماذا يعطي محوّل epoch تاريخاً غير متوقع؟
ج: الأسباب الشائعة: الخلط بين الثواني والملّي ثانية (القيمة من 13 رقماً بالملّي ثانية)، أو اختلاف المنطقة الزمنية المعروضة (نفس epoch يعطي وقتاً مختلفاً بتوقيت UTC والمحلي)، أو نظام يستخدم حقبة مختلفة (NTP: 1900، Windows FILETIME: 1601).
س: ما أقصى قيمة لـ epoch؟
ج: ينتهي العدد الصحيح ذو الإشارة بطول 32 بت عند 2,147,483,647 (19-01-2038 03:14:07 UTC)، وغير ذي الإشارة عند 4,294,967,295 (07-02-2106 06:28:15 UTC). وتكفي قيم 64 بت لمئات المليارات من السنين.