🕐
← العودة للأدلة

كيفية تحويل الطوابع الزمنية لنظام Unix إلى تواريخ قابلة للقراءة البشرية

· وسوم: unix-timestamp, conversion, date-conversion, timezone, epoch-converter

لماذا تحويل الطوابع الزمنية لنظام Unix؟

الطوابع الزمنية لنظام Unix مثالية للآلات — العدد الصحيح الواحد مضغوط وغير غامض وسهل الفرز. لكن للبشر، 1785292800 لا يعني شيئًا حتى يُترجم إلى تاريخ ووقت تقويميين. سواء كنت تصحح ملف سجل أو تحلل سجلات قاعدة البيانات أو تقرأ استجابة API، فإن معرفة كيفية تحويل الطوابع الزمنية بسرعة هي مهارة أساسية.

الطريقة 1: استخدام محول الطابع الزمني لنظام Unix عبر الإنترنت

أسرع وأكثر الطرق موثوقية هي استخدام أداة تحويل مخصصة.

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

هذه الطريقة مثالية عندما تحتاج إلى تحويل سريع لمرة واحدة دون لمس سطر الأوامر.

الطريقة 2: استخدام سطر أوامر Linux (أمر date)

إذا كان لديك وصول إلى طرفية Linux أو macOS، فإن أمر date هو صديقك المفضل.

تحويل طابع زمني إلى تاريخ قابل للقراءة البشرية

# على GNU Linux (معظم التوزيعات)
date -d @1785292800

# تحديد تنسيق مخصص
date -d @1785292800 +"%Y-%m-%d %H:%M:%S"
# الناتج: 2026-07-19 00:00:00

# مع المنطقة الزمنية
TZ="America/New_York" date -d @1785292800
# الناتج: Sun Jul 19 00:00:00 EDT 2026

على macOS (BSD date)، تختلف الصيغة قليلاً:

# على macOS
date -r 1785292800

# مع تنسيق مخصص
date -r 1785292800 +"%Y-%m-%d %H:%M:%S"

تحويل تاريخ إلى طابع زمني لنظام Unix

# على GNU Linux
date -d "2026-07-19 00:00:00" +%s

# على macOS
date -j -f "%Y-%m-%d %H:%M:%S" "2026-07-19 00:00:00" +%s

الطريقة 3: الحساب اليدوي

بينما نادرًا ما تحتاج إلى القيام بذلك يدويًا، فإن فهم الرياضيات يزيل الغموض عن كيفية عمل النظام.

المعادلة

الثواني = (السنة - 1970) × 31536000 + (إزاحة الشهر) × 86400 + اليوم × 86400 + الساعات × 3600 + الدقائق × 60 + الثواني

الجزء الصعب هو حساب السنوات الكبيسة. السنة هي سنة كبيسة إذا كانت قابلة للقسمة على 4، باستثناء سنوات القرن غير القابلة للقسمة على 400.

تقديرات ذهنية سريعة

  • 86,400 ثانية = يوم واحد
  • 604,800 ثانية = أسبوع واحد
  • حوالي 31,536,000 ثانية = سنة عادية واحدة
  • حوالي 31,622,400 ثانية = سنة كبيسة واحدة

لتقدير تقريبي، يمكنك حساب timestamp / 86400 للحصول على عدد الأيام منذ العصر، ثم إضافة تلك الأيام إلى 1 يناير 1970.

الطريقة 4: استخدام لغات البرمجة

كل لغة برمجة رئيسية لديها وظائف مدمجة لتحويل الطوابع الزمنية. إليك الأكثر شيوعًا:

JavaScript (المتصفح أو Node.js)

// طابع زمني إلى تاريخ (JavaScript تستخدم الميلي ثانية)
const timestamp = 1785292800;
const date = new Date(timestamp * 1000);
console.log(date.toISOString());
// الناتج: 2026-07-19T00:00:00.000Z

// تاريخ إلى طابع زمني
const ts = Math.floor(new Date("2026-07-19").getTime() / 1000);
console.log(ts);
// الناتج: 1785292800

Python

from datetime import datetime

# طابع زمني إلى تاريخ
dt = datetime.utcfromtimestamp(1785292800)
print(dt.isoformat())
# الناتج: 2026-07-19T00:00:00

# مراعٍ للمنطقة الزمنية (Python 3.9+)
from zoneinfo import ZoneInfo
dt_tz = datetime.fromtimestamp(1785292800, tz=ZoneInfo("America/New_York"))
print(dt_tz.isoformat())
# الناتج: 2026-07-19T00:00:00-04:00

# تاريخ إلى طابع زمني
import time
ts = time.mktime(datetime(2026, 7, 19).timetuple())
print(ts)

PHP

<?php
// طابع زمني إلى تاريخ
echo date("Y-m-d H:i:s", 1785292800);
// الناتج: 2026-07-19 00:00:00

// تاريخ إلى طابع زمني
echo strtotime("2026-07-19 00:00:00");
// الناتج: 1785292800

الطريقة 5: استخدام برامج جداول البيانات

Google Sheets

استخدم المعادلة =DATE(1970,1,1) + A1 / 86400 حيث تحتوي A1 على الطابع الزمني. قم بتنسيق خلية النتيجة كتاريخ.

Microsoft Excel

=DATE(1970,1,1) + A1 / 86400

على Windows Excel، قد تحتاج إلى:

=(A1 / 86400) + DATE(1970,1,1)

الحالات الحدية التي يجب الانتباه لها

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

هذا هو الخطأ الأكثر شيوعًا. إذا مررت قيمة بالميلي ثانية (مثل 1785292800000) إلى دالة تتوقع ثواني، فستحصل على تاريخ في المستقبل بحوالي 56,000 عام.

كيفية الاكتشاف:

  • إذا كان الرقم مكونًا من 10 أرقام، فهو على الأرجح ثواني
  • إذا كان الرقم مكونًا من 13 رقمًا، فهو على الأرجح ميلي ثانية
  • بعض الأنظمة تستخدم أيضًا الميكروثانية (16 رقمًا) أو النانوثانية (19 رقمًا)

الطوابع الزمنية السالبة (التواريخ قبل 1970)

يمكن للطوابع الزمنية لنظام Unix تمثيل التواريخ قبل العصر باستخدام أرقام سالبة:

date -d @-126230400
# الناتج: Tue Dec 31 00:00:00 -1969

لا تتعامل جميع أدوات التحويل مع الطوابع الزمنية السالبة بشكل صحيح. محولنا عبر الإنترنت يتعامل معها.

الثواني الكبيسة

يتجاهل وقت Unix الثواني الكبيسة حسب التصميم. لن يظهر الطابع الزمني لنظام Unix أبدًا :59:60 حتى أثناء إدراج ثانية كبيسة. هذا يعني أن الطابع الزمني يتباعد عن الوقت الذري بمقدار صغير (حاليًا 27 ثانية) لكنه متنامٍ.

ملخص

| الطريقة | الأنسب لـ | |--------|----------| | المحول عبر الإنترنت (/ar/linux-timestamp) | تحويلات سريعة لمرة واحدة | | أمر date | مستخدمي الطرفية والنصوص البرمجية | | الحساب اليدوي | فهم كيفية عمله | | لغات البرمجة | الأتمتة والتطبيقات | | جداول البيانات | تحليل البيانات |

استخدم محول الطابع الزمني لنظام Unix لإجراء تحويلات فورية ودقيقة مع اكتشاف تلقائي للمنطقة الزمنية.