ما هو وقت Unix؟

يحسب وقت Unix (ويُسمّى أيضًا وقت epoch أو طابع POSIX الزمني) الوقت منذ 00:00:00 بالتوقيت UTC في 1 يناير 1970. وتستخدم الأنظمة المختلفة وحدات مختلفة لحسابه: إذ تستخدم shell الخاصة بـ Unix وPHP ومعظم قواعد البيانات الثواني، بينما تستخدم JavaScript وJava المللي ثانية، وتوفر Python's time.time_ns() وGo وInfluxDB النانوثواني، في حين تستخدم العديد من أدوات التتبّع وتسجيل السجلات الميكروثواني. وتمثل اللحظة نفسها القيمة 1700000000 بالثواني والقيمة 1700000000000000000 بالنانوثواني، لذا فإن الخلط بين الوحدات يزيح التاريخ آلاف السنين.

وصف الأداة

تحوّل هذه الأداة طابع Unix الزمني بين الثواني والمللي ثواني والميكروثواني والنانوثواني، وتعرض التاريخ الذي يمثّله. ألصق طابعًا زمنيًا، وسيتم اكتشاف الوحدة من طوله، أو اختر الوحدة بنفسك. كل عملية تحويل دقيقة تمامًا، بما في ذلك الطوابع الزمنية بالنانوثواني التي تكون كبيرة جدًا على أن يستوعبها رقم JavaScript عادي.

الميزات

  • التحويل بين الثواني والمللي ثواني والميكروثواني والنانوثواني في خطوة واحدة
  • اكتشاف وحدة الإدخال من عدد الأرقام، أو إتاحة اختيارها يدويًا
  • الحفاظ على الدقة الكاملة دون أخطاء تقريب، حتى مع قيم النانوثواني المؤلفة من 19 رقمًا
  • قبول الكسور (1700000000.123) والقيم السالبة للتواريخ السابقة لعام 1970 والصيغة العلمية (1.7e9)
  • إخراج اختياري للأعداد الصحيحة بالكامل لواجهات API التي تتوقع أعدادًا صحيحة
  • عرض التاريخ بصيغة ISO 8601 وفق UTC، بدقة تصل إلى النانوثانية، وكذلك وفق منطقتك الزمنية المحلية
  • إخفاء حقلي الميكروثواني والنانوثواني إذا لم تكن بحاجة إليهما

كيف تعمل الأداة؟

تُقرأ الطابع الزمني كرقم عشري دقيق تمامًا، ويُخزَّن كعدد صحيح كامل من النانوثواني، باستخدام أعداد صحيحة ذات دقة اعتباطية بدلًا من أعداد الفاصلة العائمة. يقسم كل ناتج هذه القيمة على حجم وحدته ويكتب النتيجة الدقيقة، لذا فإن تحويل المللي ثواني إلى ثوانٍ يعطي 1700000000.123 بدلًا من قيمة مقربة. عند تفعيل خيار «الأعداد الصحيحة فقط»، تُقرَّب النتيجة نحو الأسفل إلى الوحدة التي تقع فيها، وهذا أيضًا ما يفعله وقت Unix مع التواريخ السابقة لعام 1970: تتحول -1.5 ثانية إلى -2.

عند اكتشاف الوحدة تلقائيًا، تفترض الأداة تاريخًا بين عامَي 1973 و5138: تُقرأ القيم التي يصل طولها إلى 11 رقمًا على أنها ثوانٍ، والقيم من 12 إلى 14 رقمًا على أنها مللي ثوانٍ، والقيم من 15 إلى 17 رقمًا على أنها ميكروثوانٍ، والقيم التي يبلغ طولها 18 رقمًا أو أكثر على أنها نانوثوانٍ.

نصائح

  • لا يستطيع الاكتشاف حسب الطول التمييز بين القيم القصيرة، مثل طابع زمني بالمللي ثوانٍ يعود إلى ما قبل مارس 1973 وطابع زمني بالثواني. إذا بدا التاريخ غير صحيح، فاختر وحدة الإدخال بنفسك.
  • يملأ خيار «الآن» الوقت الحالي بالوحدة التي تستخدمها. لا توفر المتصفحات الوقت إلا بدقة المللي ثانية، لذا تكون الأرقام الأخيرة في قيم الميكروثواني والنانوثواني أصفارًا.
  • يتم تجاهل المسافات والشرطات السفلية في الإدخال، لذا يمكنك لصق قيم مثل 1_700_000_000.