محوّل الميلي ثانية إلى تاريخ
اقرأ طابعًا زمنيًا يونكس بالميلي ثانية تاريخًا، مع الحفاظ على جزء الثانية في سطر ISO 8601.
طابع زمني أو تاريخ واحد في كل سطر، حتى 500 سطر.
الصق الشيفرة في رسالة على Discord؛ فيراها كل شخص بمنطقته الزمنية ولغته.
حوّل هذا الطابع الزمني في شيفرتك أنت.
تحويل ميلي ثانية Epoch إلى تاريخ
معظم قيم الوقت التي يلقاها مطوّر الواجهة بالميلي ثانية، لأن هذا ما تسلّمه له اللغة: Date.now() يَعُدّ الميلي ثانية لا الثواني. ثم يتعيّن على كل ما بعدها، من خطوط معالجة السجلات إلى أعمدة قواعد البيانات، أن يتفق على الوحدة. تفتح هذه الصفحة محوّل الطابع الزمني وقائمة الوحدة على الميلي ثانية سلفًا، فيُقرأ رقم من ثلاثة عشر رقمًا قراءةً صحيحة لحظة لصقه.
يظهر الجواب في أربعة أسطر معًا: اللحظة في المنطقة المختارة أعلى الأداة، واللحظة نفسها بتوقيت <abbr title="Coordinated Universal Time">UTC، وصيغة ISO 8601 التي تطلبها معظم واجهات الـ API، والمسافة عن الآن بكلمات واضحة. ويُحسب ذلك كله داخل الصفحة، فتبقى القيم المأخوذة من سجل إنتاج على جهازك.
ثلاثة عشر رقمًا، وحين لا يكفي عدّها
يعمل الكشف التلقائي على عدد الأرقام وهو صحيح لأي تاريخ في هذا القرن، لكن الوحدة خاصية النظام الذي أنتج الرقم لا خاصية الرقم نفسه. ثبّت قائمة الوحدة فيزول التخمين. وثمن الخطأ ليس خفيًا، لأن كل درجة بين الوحدات تزيح التاريخ ثلاث مراتب عشرية.
الوحدة المختارة لـ 1735689600000 | التاريخ الذي تنتجه | الحكم |
|---|---|---|
| الثواني | 25 أكتوبر 56971 | أكبر بألف مرة في الاتجاه الخطأ |
| الميلي ثانية | الأول من يناير 2025، 00:00:00 بتوقيت UTC | ما يعنيه الرقم فعلًا |
| الميكرو ثانية | 21 يناير 1970، 02:08:09 بتوقيت UTC | تاريخ قريب من 1970 هو العَرَض الكلاسيكي |
| النانو ثانية | الأول من يناير 1970، 00:28:55 بتوقيت UTC | المبدأ نفسه تقريبًا |
لذلك فإن تاريخًا في أيام 1970 الأولى أو تاريخًا بعد عشرات آلاف السنين لا يكون بيانات تالفة إلا نادرًا. إنه العدد الصحيح نفسه مقروءًا بوحدة خاطئة، والحل في القائمة لا في الرقم.
من أين تأتي الطوابع بالميلي ثانية
- JavaScript: يعيد كل من
Date.now()وnew Date().getTime()ميلي ثانية، ويتوقعهاnew Date(n)كذلك، ولهذا يلزم ضرب قيمة من عشرة أرقام في 1000 أولًا. - جافا:
System.currentTimeMillis()وInstant.toEpochMilli(). - MongoDB: نوع التاريخ في BSON عدّ بإشارة بطول 64 بت للميلي ثانية منذ المبدأ.
- Kafka وElasticsearch ومعظم صيغ سجلات JSON، وقد ورثت الوحدة من اللغات التي تكتب فيها.
أما قواعد البيانات وأدوات يونكس فتميل إلى الجهة الأخرى وتَعُدّ بالثواني، فالحدّ بين خدمة مكتوبة بـ JavaScript وعمود SQL هو تمامًا الموضع الذي يُفقد فيه عامل الألف. وتحويل قيمة مشبوهة هنا وقراءة تاريخها أسرع وسيلة لمعرفة أي الجهتين أسقطته.
التقريب، وتحويل أكثر من قيمة
الانتقال من الميلي ثانية إلى الثواني بتر، فليكن في موضع واحد وباتجاه واحد. فخلط البتر في خدمة بالتقريب في أخرى ينتج فروقًا بثانية واحدة لا تظهر إلا عندما يقع حدثان في الثانية نفسها. وتتبع علامة التبويب دفعة أسفل المحوّل القاعدة نفسها: الصق حتى 500 سطر، فيحصل كل صف على عمود للثواني بعد إسقاط الكسر إلى جانب عمود ISO 8601 الذي يحفظه، جاهزًا لـنسخ بصيغة CSV.
تحويلات ذات صلة
للقيمة ذات العشرة أرقام هناك تحويل الطابع الزمني إلى تاريخ، وللاتجاه المعاكس تحويل التاريخ إلى طابع زمني الذي يعيد الثواني والميلي ثانية لتاريخ تختاره. والطابع الزمني يونكس الحالي هو العدّاد الحيّ في شريط الأداة، وتحتاج طوابع ديسكورد الزمنية إلى صيغة الثواني، وهذا سبب شائع للتحويل إلى الأسفل.