ToolDeck

محوّل المنطقة الزمنية

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

UTCUTC+00:00

04/16/2026, 21:56:00

America/New_YorkUTC-04:00

04/16/2026, 17:56:00

ما هو تحويل المناطق الزمنية؟

يُحوِّل محوّل المناطق الزمنية تاريخًا ووقتًا من منطقة زمنية إلى أخرى، مما يتيح لك رؤية الوقت المكافئ في أي مكان في العالم فورًا. ينقسم العالم إلى 24 منطقة زمنية رئيسية، تُعرَّف كل منها بإزاحة ثابتة عن التوقيت العالمي المنسق (UTC). عندما يكون الوقت 14:00 بتوقيت UTC، يكون الوقت 09:00 في نيويورك (UTC-5) و23:00 في طوكيو (UTC+9). يتطلب التحويل الصحيح بين المناطق الزمنية معرفة إزاحة UTC لكل من المنطقتين المصدر والهدف، وما إذا كان التوقيت الصيفي (DST) مُفعَّلًا في أيٍّ منهما.

قاعدة بيانات IANA للمناطق الزمنية (المعروفة أيضًا بقاعدة بيانات Olson أو tz) هي المصدر المعياري لتعريفات المناطق الزمنية التي تستخدمها أنظمة التشغيل ولغات البرمجة ومتصفحات الويب. وتُسنَد لكل منطقة معرِّف فريد بصيغة المنطقة/المدينة، مثل America/New_York أو Asia/Tokyo. وخلافًا للاختصارات الثابتة كـ EST أو PST، تشمل معرِّفات IANA التاريخ الكامل لتغييرات إزاحة UTC وتحولات التوقيت الصيفي لكل منطقة، مما يجعلها الطريقة الوحيدة الموثوقة لتحويل الوقت عبر التواريخ الماضية والمستقبلية.

يستخدم هذا المحوّل بيانات مناطق IANA المدمجة في محرك JavaScript بمتصفحك عبر واجهة Intl API. تختار منطقة زمنية مصدر وتُدخل تاريخًا ووقتًا، فتحسب الأداة على الفور الوقت المكافئ في المنطقة الزمنية الهدف، مع مراعاة أي تعديلات للتوقيت الصيفي. ولأن العملية تجري بالكامل في متصفحك، فلا توجد رحلة إلى الخادم ولا تغادر بياناتك جهازك.

لماذا تستخدم هذا المحوّل؟

حساب المناطق الزمنية يدويًا عرضة للأخطاء، خاصةً عند تدخل التوقيت الصيفي. قد تكون مدينة ما بتوقيت UTC-5 في يناير وUTC-4 في يوليو، وتختلف تواريخ التحول من دولة إلى أخرى. تُغير الولايات المتحدة وأوروبا توقيتيهما في أيام أحد مختلفة، مما يخلق نافذة مدتها أسبوعان تختلف فيها الفجوة بين نيويورك ولندن عن بقية العام. تُعالج هذه الأداة جميع تلك التحولات تلقائيًا باستخدام قاعدة بيانات IANA ذاتها التي يستخدمها نظام تشغيلك.

~
تحويل فوري
اختر منطقتين زمنيتين وأدخل الوقت، وشاهد النتيجة فورًا. لا إرسال نماذج ولا إعادة تحميل للصفحة. يُحدَّث التحويل أثناء الكتابة.
~
نتائج تراعي التوقيت الصيفي
يأخذ المحوّل في الحسبان تحولات التوقيت الصيفي تلقائيًا. ويستخدم بيانات IANA المدمجة في المتصفح، لذا تعكس النتائج الإزاحة الصحيحة لأي تاريخ تُدخله، ماضيًا كان أم مستقبلًا.
~
يعمل محليًا في متصفحك
يجري التحويل بالكامل محليًا في متصفحك باستخدام Intl API. لا تُرسَل أي تواريخ أو أوقات أو اختيارات مناطق زمنية إلى أي خادم.
~
لا تسجيل مطلوب
استخدم المحوّل دون تسجيل أو تثبيت برامج أو منح أذونات. افتح الصفحة وحوّل وقتك وأغلقها.

حالات استخدام محوّل المناطق الزمنية

جدولة الاجتماعات عبر الفرق
حين يمتد فريقك بين نيويورك وبرلين وسنغافورة، يستلزم إيجاد وقت اجتماع مناسب للجميع تحويل أوقات عبر ثلاث مناطق زمنية أو أكثر. أدخل وقتًا مقترحًا بمنطقتك المحلية وشاهد فورًا ما إذا كان الوقت المكافئ في موقع كل عضو يقع ضمن ساعات عمله.
تصحيح طوابع وقت واجهة برمجة التطبيقات
كثيرًا ما تتضمن استجابات API طوابع وقت بتوقيت UTC أو منطقة زمنية للخادم. حوّل تلك الطوابع إلى توقيتك المحلي للتحقق من أن الأحداث وقعت في الوقت المتوقع وأن المنطق الزمني صحيح.
جداول زمنية للحوادث في DevOps
خلال الحوادث، قد تأتي إدخالات السجلات من خوادم في مناطق مختلفة. حوّل جميع الطوابع الزمنية إلى منطقة مرجعية واحدة (عادةً UTC) لبناء جدول زمني دقيق للأحداث.
اختبار الجودة لمنطق التاريخ
تحتاج التطبيقات التي تعرض تواريخ للمستخدمين في مناطق مختلفة إلى اختبار بمدخلات زمنية محددة. استخدم المحوّل لتوليد حالات اختبار لحالات حافة كساعة التقديم في التوقيت الصيفي.
تنسيق خطوط أنابيب البيانات
قد تحتاج مهام ETL المجدوَلة في منطقة زمنية إلى مطابقة جدول مصادر البيانات أو المستهلكين في منطقة أخرى. حوّل أوقات التشغيل المجدوَلة للتحقق من أن مراحل خط الأنابيب تنفَّذ بالترتيب الصحيح.
تعلّم مفاهيم المناطق الزمنية
يمكن للطلاب الذين يتعلمون إزاحات UTC وخط التاريخ الدولي وقواعد التوقيت الصيفي تجربة أزواج مناطق مختلفة لرؤية كيفية تغير الوقت عبر المناطق.

مرجع مناطق IANA الزمنية

تُعرِّف قاعدة بيانات IANA للمناطق الزمنية أكثر من 400 معرِّف منطقة زمنية، وتُحدَّث عدة مرات سنويًا لتعكس التغييرات السياسية وقواعد التوقيت الصيفي الجديدة والتصحيحات التاريخية. يسرد الجدول أدناه المناطق الأكثر استخدامًا مع إزاحات UTC المعيارية وسلوك التوقيت الصيفي. الإزاحات المعروضة هي للتوقيت المعياري؛ ويُظهر عمود DST الإزاحة المعدَّلة عند تفعيل التوقيت الصيفي في تلك المنطقة.

معرِّف IANAالاسم الشائعإزاحة UTCالتوقيت الصيفي
UTCCoordinated Universal Time+00:00No
America/New_YorkEastern Time (US)-05:00Yes (EDT -04:00)
America/ChicagoCentral Time (US)-06:00Yes (CDT -05:00)
America/DenverMountain Time (US)-07:00Yes (MDT -06:00)
America/Los_AngelesPacific Time (US)-08:00Yes (PDT -07:00)
Europe/LondonGreenwich Mean Time+00:00Yes (BST +01:00)
Europe/BerlinCentral European Time+01:00Yes (CEST +02:00)
Europe/MoscowMoscow Time+03:00No
Asia/DubaiGulf Standard Time+04:00No
Asia/KolkataIndia Standard Time+05:30No
Asia/ShanghaiChina Standard Time+08:00No
Asia/TokyoJapan Standard Time+09:00No
Australia/SydneyAustralian Eastern Time+10:00Yes (AEDT +11:00)
Pacific/AucklandNew Zealand Standard Time+12:00Yes (NZDT +13:00)

أمثلة برمجية

توفر كل لغة برمجة رئيسية تحويل المناطق الزمنية عبر قاعدة بيانات IANA. تُوضح الأمثلة أدناه كيفية تحويل طابع وقت UTC إلى مناطق زمنية أخرى في JavaScript باستخدام Intl API، وPython باستخدام وحدة zoneinfo، وGo باستخدام حزمة time، وأمر GNU date للبرامج النصية.

JavaScript (Intl API)
// Convert a date from one timezone to another
const date = new Date('2026-03-15T09:00:00Z')

// Format in specific timezone
const nyTime = date.toLocaleString('en-US', { timeZone: 'America/New_York' })
// → "3/15/2026, 5:00:00 AM"

const tokyoTime = date.toLocaleString('en-US', { timeZone: 'Asia/Tokyo' })
// → "3/15/2026, 6:00:00 PM"

// Get the UTC offset for a timezone programmatically
function getUtcOffset(tz: string, date = new Date()) {
  const fmt = new Intl.DateTimeFormat('en-US', {
    timeZone: tz,
    timeZoneName: 'longOffset',
  })
  const parts = fmt.formatToParts(date)
  return parts.find(p => p.type === 'timeZoneName')?.value ?? ''
}
getUtcOffset('Asia/Kolkata') // → "GMT+05:30"
Python (zoneinfo + datetime)
from datetime import datetime
from zoneinfo import ZoneInfo

# Create a timezone-aware datetime
dt = datetime(2026, 3, 15, 9, 0, tzinfo=ZoneInfo('UTC'))

# Convert to New York time
ny = dt.astimezone(ZoneInfo('America/New_York'))
print(ny)  # → 2026-03-15 05:00:00-04:00 (EDT in March)

# Convert to Tokyo time
tokyo = dt.astimezone(ZoneInfo('Asia/Tokyo'))
print(tokyo)  # → 2026-03-15 18:00:00+09:00

# Get current time in any timezone
now_berlin = datetime.now(ZoneInfo('Europe/Berlin'))
print(now_berlin.strftime('%Y-%m-%d %H:%M %Z'))  # → 2026-03-15 10:00 CET
Go
package main

import (
	"fmt"
	"time"
)

func main() {
	utc := time.Date(2026, 3, 15, 9, 0, 0, 0, time.UTC)

	// Load timezone by IANA name
	ny, _ := time.LoadLocation("America/New_York")
	tokyo, _ := time.LoadLocation("Asia/Tokyo")

	fmt.Println(utc.In(ny))    // → 2026-03-15 05:00:00 -0400 EDT
	fmt.Println(utc.In(tokyo)) // → 2026-03-15 18:00:00 +0900 JST

	// Get the UTC offset in seconds
	_, offset := utc.In(ny).Zone()
	fmt.Printf("UTC offset: %+d hours\n", offset/3600) // → UTC offset: -4 hours
}
CLI (GNU date / TZ variable)
# Display current time in a specific timezone
TZ='Asia/Tokyo' date '+%Y-%m-%d %H:%M:%S %Z'
# → 2026-03-15 18:00:00 JST

# Convert a UTC timestamp to another timezone
TZ='America/Los_Angeles' date -d '2026-03-15T09:00:00Z' '+%Y-%m-%d %H:%M %Z'
# → 2026-03-15 02:00 PDT

# List all available IANA timezone names
timedatectl list-timezones | head -20

الأسئلة الشائعة

ما الفرق بين UTC وGMT؟
يمثل UTC (التوقيت العالمي المنسق) وGMT (توقيت غرينتش) الوقت ذاته عمليًا: إزاحة صفرية عن خط الطول الرئيسي. الفرق تقني: UTC مُعرَّف بالساعات الذرية وهو المعيار الزمني العالمي المستخدم في الحوسبة. أما GMT فاسم منطقة زمنية مرتبطة بالمملكة المتحدة. في البرمجة، استخدم دومًا UTC كنقطة مرجعية لا GMT.
كيف يؤثر التوقيت الصيفي على تحويل المناطق الزمنية؟
عند اتباع منطقة للتوقيت الصيفي، تتحول إزاحة UTC بمقدار ساعة واحدة (أحيانًا 30 أو 45 دقيقة) لجزء من العام. مثلًا، America/New_York هي UTC-5 شتاءً (EST) وUTC-4 صيفًا (EDT). إن قيّدت إزاحة ثابتة بدلًا من استخدام معرِّف IANA، ستكون تحويلاتك خاطئة لنصف العام. استخدم دومًا اسم IANA الكامل كـ America/New_York لا إزاحة ثابتة.
لماذا أستخدم أسماء IANA بدلًا من اختصارات كـ EST أو PST؟
اختصارات المناطق الزمنية مُبهمة. يمكن أن يعني CST توقيت وسط أمريكا المعياري (UTC-6) أو توقيت الصين المعياري (UTC+8) أو توقيت كوبا المعياري (UTC-5). معرِّفات IANA كـ America/Chicago فريدة عالميًا وتحتوي على السجل الكامل لتغييرات الإزاحة وقواعد التوقيت الصيفي لتلك المنطقة. تتولى صيانة قاعدة بيانات IANA هيئة الأرقام المخصصة للإنترنت وتُحدَّث عدة مرات سنويًا.
ماذا يحدث لوقت يقع في فجوة التقديم الصيفي؟
عند تقديم الساعات، تُحذف ساعة كاملة. مثلًا، في America/New_York تقفز الساعة من 2:00 صباحًا مباشرةً إلى 3:00 صباحًا في الأحد الثاني من مارس. لا يوجد وقت كـ 2:30 صباحًا في ذلك التاريخ في تلك المنطقة. تتعامل معظم لغات البرمجة مع ذلك بتقديم الوقت إلى 3:00 صباحًا أو برمي خطأ، وفقًا للمكتبة.
هل يمكنني تحويل الأوقات للتواريخ التاريخية بدقة؟
نعم، إذا استخدمت معرِّفات IANA للمناطق الزمنية. تشمل قاعدة بيانات IANA تغييرات الإزاحة التاريخية التي تعود لعقود. مثلًا، استخدمت الصين خمس مناطق زمنية قبل عام 1949 ثم تحولت إلى منطقة واحدة (UTC+8) بعدها. تسجّل قاعدة البيانات هذه التحولات، لذا سيستخدم تحويل طابع وقت من عام 1945 في Asia/Shanghai الإزاحة التاريخية الصحيحة.
كيف أخزّن الأوقات في قاعدة بيانات لتجنب مشكلات المناطق الزمنية؟
خزِّن جميع الطوابع الزمنية بتوقيت UTC. عند عرض وقت للمستخدم، حوّله من UTC إلى منطقته الزمنية المحلية وقت العرض. يتجنب هذا النهج الغموض: للطابع الزمني UTC معنى واحد بالضبط بصرف النظر عن موقع الخادم أو المستخدم. يخزّن كلٌّ من نوع TIMESTAMPTZ في PostgreSQL ونوع TIMESTAMP في MySQL القيم داخليًا بتوقيت UTC.
هل توجد منطقة زمنية بإزاحة 30 أو 45 دقيقة؟
نعم. التوقيت الهندي المعياري (Asia/Kolkata) هو UTC+5:30، والتوقيت النيبالي المعياري (Asia/Kathmandu) هو UTC+5:45، وجزر تشاتام (Pacific/Chatham) هي UTC+12:45. يستخدم إيران (Asia/Tehran) توقيت UTC+3:30. تعني هذه الإزاحات الكسرية أنك لا تستطيع افتراض أن جميع فروق المناطق الزمنية بالساعات الكاملة عند كتابة منطق التحويل.