محول الطابع الزمني
تحويل طوابع Unix الزمنية إلى تواريخ مقروءة والعكس
الطابع الزمني Unix الحالي
1774458457
Wed, 25 Mar 2026 17:07:37 GMT
ما هو الطابع الزمني Unix؟
الطابع الزمني Unix (المعروف أيضاً بـ epoch time أو POSIX time) هو عدد الثواني التي مرّت منذ 1 يناير 1970، الساعة 00:00:00 UTC. يُسمّى هذا التاريخ بـ Unix epoch. كل ثانية تمر تزيد العداد بمقدار واحد، مما يمنح كل لحظة تمثيلاً صحيحاً فريداً. يحوّل محوّل الطابع الزمني Unix بين هذا العدد الصحيح وصيغ التاريخ المقروءة كـ ISO 8601 وRFC 2822 والسلاسل الخاصة بكل منطقة.
تُعدّ طوابع Unix الزمنية الطريقة القياسية لتمثيل الوقت في الحوسبة. تخزّن قواعد البيانات أعمدة created_at وupdated_at كأعداد صحيحة أو طوابع زمنية بالميلي ثانية. تتضمّن استجابات API طوابع زمنية لترويسات التخزين المؤقت (Expires، Last-Modified)، وادعاءات JWT (iat، exp، nbf)، وسجلات الأحداث. تستخدم ملفات السجل من nginx وsyslog وأطر التطبيقات جميعها وقت epoch. الصيغة لا لبس فيها لأنها تمثّل UTC دائماً، بدون منطقة زمنية أو توقيت صيفي يُسبّب سوء التفسير.
التحويل يدوياً بين الطوابع الزمنية والتواريخ عُرضة للخطأ. قيمة مثل 1711324800 لا تدل مباشرة على التاريخ الذي تمثله. تحوّل هذه الأداة طوابع Unix الزمنية إلى تواريخ مقروءة والعكس. سواء كنت تقرأ ادعاء JWT exp، أو تُصحّح استعلام قاعدة بيانات، أو تفحص طابع زمني في سجل، فهي تتعامل تلقائياً مع قيم 10 أرقام (ثواني) و13 رقماً (ميلي ثانية).
لماذا تستخدم هذا المحوّل؟
قراءة طوابع Unix الزمنية الخام من السجلات أو قواعد البيانات أو استجابات API تستلزم إما حفظ حسابات epoch أو كتابة كود مؤقت. يُنجز هذا المحوّل ذلك في متصفحك دون أي إعداد. سواء كنت بحاجة لفك تشفير انتهاء صلاحية JWT، أو مراجعة سطر سجل، أو ضبط TTL لقاعدة بيانات، فالنتيجة على بُعد نقرة واحدة. تكتشف الأداة تلقائياً إن كانت القيمة طابعاً زمنياً من 10 أرقام بالثواني أو 13 رقماً بالميلي ثانية، فلا تحتاج أبداً للقسمة يدوياً على 1000. تعمل جميع العمليات محلياً في متصفحك. لا تغادر أي بيانات جهازك، فتبقى الطوابع الزمنية من الأنظمة الداخلية والسجلات الحساسة خاصة.
حالات استخدام محوّل الطابع الزمني
جدول مرجعي لطوابع Unix الزمنية
يعرض الجدول أدناه طوابع Unix الزمنية المعروفة والتواريخ المقابلة لها. هذه القيم مفيدة للتحقق السريع والاختبار وفهم نطاق الطوابع الزمنية 32 بت و64 بت.
| الطابع الزمني | التاريخ (UTC) | ملاحظة |
|---|---|---|
| 0 | Jan 1, 1970 00:00:00 UTC | Unix epoch start |
| 86400 | Jan 2, 1970 00:00:00 UTC | Exactly 1 day |
| 946684800 | Jan 1, 2000 00:00:00 UTC | Y2K |
| 1000000000 | Sep 9, 2001 01:46:40 UTC | 10-digit milestone |
| 1234567890 | Feb 13, 2009 23:31:30 UTC | Ascending digits |
| 1700000000 | Nov 14, 2023 22:13:20 UTC | Recent 10-digit |
| 2000000000 | May 18, 2033 03:33:20 UTC | Next 10-digit milestone |
| 2147483647 | Jan 19, 2038 03:14:07 UTC | Y2038 (signed 32-bit max) |
| 4102444800 | Jan 1, 2100 00:00:00 UTC | Next century |
مقارنة صيغ التاريخ والوقت
تمثّل أنظمة ومعايير مختلفة اللحظة ذاتها باستخدام صيغ نصية مختلفة. يقارن الجدول الصيغ الأكثر شيوعاً التي ستصادفها في APIs والسجلات وقواعد البيانات.
| الصيغة | مثال | ملاحظات |
|---|---|---|
| Unix (seconds) | 1711324800 | Integer, no timezone info |
| Unix (milliseconds) | 1711324800000 | Used by JavaScript Date.now() |
| ISO 8601 | 2024-03-25T00:00:00Z | Machine-readable, includes timezone |
| RFC 2822 | Mon, 25 Mar 2024 00:00:00 +0000 | Email and HTTP headers |
| UTC string | Mon, 25 Mar 2024 00:00:00 GMT | Date.prototype.toUTCString() |
| Human readable | March 25, 2024, 12:00:00 AM | Locale-dependent, display only |
أمثلة الكود
حوّل بين طوابع Unix الزمنية والتواريخ باللغة التي تعمل بها. يعرض كل مثال كلا الاتجاهين: من الطابع الزمني إلى التاريخ ومن التاريخ إلى الطابع الزمني.
// Current Unix timestamp in seconds
Math.floor(Date.now() / 1000) // → 1711324800
// Unix timestamp to Date object
const date = new Date(1711324800 * 1000)
date.toISOString() // → "2024-03-25T00:00:00.000Z"
date.toUTCString() // → "Mon, 25 Mar 2024 00:00:00 GMT"
// Date string to Unix timestamp
Math.floor(new Date('2024-03-25T00:00:00Z').getTime() / 1000)
// → 1711324800
// Millisecond timestamps (common in JS APIs)
Date.now() // → 1711324800000 (ms)
Date.parse('2024-03-25') // → 1711324800000 (ms)import time
from datetime import datetime, timezone
# Current Unix timestamp
int(time.time()) # → 1711324800
# Unix timestamp to datetime
dt = datetime.fromtimestamp(1711324800, tz=timezone.utc)
dt.isoformat() # → '2024-03-25T00:00:00+00:00'
dt.strftime('%Y-%m-%d %H:%M:%S %Z') # → '2024-03-25 00:00:00 UTC'
# Datetime string to Unix timestamp
dt = datetime.fromisoformat('2024-03-25T00:00:00+00:00')
int(dt.timestamp()) # → 1711324800
# Parse RFC 2822 dates (from email headers)
from email.utils import parsedate_to_datetime
parsedate_to_datetime('Mon, 25 Mar 2024 00:00:00 +0000').timestamp()
# → 1711324800.0package main
import (
"fmt"
"time"
)
func main() {
// Current Unix timestamp
now := time.Now().Unix() // → 1711324800
// Unix timestamp to time.Time
t := time.Unix(1711324800, 0).UTC()
fmt.Println(t.Format(time.RFC3339))
// → 2024-03-25T00:00:00Z
// Parse a date string to Unix timestamp
parsed, _ := time.Parse(time.RFC3339, "2024-03-25T00:00:00Z")
fmt.Println(parsed.Unix())
// → 1711324800
// Millisecond timestamp
ms := time.Now().UnixMilli() // → 1711324800000
fmt.Println(now, ms)
}# Current Unix timestamp date +%s # → 1711324800 # Convert timestamp to human-readable date (GNU date) date -d @1711324800 # → Mon Mar 25 00:00:00 UTC 2024 # Convert timestamp to ISO 8601 date -d @1711324800 --iso-8601=seconds # → 2024-03-25T00:00:00+00:00 # macOS (BSD date) — slightly different flags date -r 1711324800 # → Mon Mar 25 00:00:00 UTC 2024 # Date string to timestamp (GNU date) date -d "2024-03-25 00:00:00 UTC" +%s # → 1711324800