ToolDeck

مبدل منطقه زمانی

تبدیل زمان بین مناطق زمانی مختلف جهان

UTCUTC+00:00

04/16/2026, 21:56:00

America/New_YorkUTC-04:00

04/16/2026, 17:56:00

تبدیل منطقه زمانی چیست؟

یک مبدل منطقه زمانی، تاریخ و زمان را از یک منطقه زمانی به منطقه‌ای دیگر تبدیل می‌کند و به شما امکان می‌دهد فوری ببینید زمان معادل در هر نقطه‌ای از جهان چیست. جهان به ۲۴ منطقه زمانی اصلی تقسیم می‌شود که هر کدام به عنوان یک اختلاف ثابت از زمان هماهنگ جهانی (UTC) تعریف می‌شوند. وقتی ساعت ۱۴:۰۰ UTC است، در نیویورک ساعت ۰۹:۰۰ (UTC-5) و در توکیو ساعت ۲۳:۰۰ (UTC+9) است. برای تبدیل صحیح بین مناطق زمانی باید اختلاف UTC هر دو منطقه مبدا و مقصد را بدانید و مشخص کنید آیا توقیت تابستانی (DST) در هر کدام اعمال می‌شود یا خیر. ایران با شناسه Asia/Tehran از اختلاف UTC+3:30 استفاده می‌کند.

پایگاه داده مناطق زمانی IANA (که با نام‌های پایگاه داده Olson یا tz نیز شناخته می‌شود) منبع استاندارد تعریف مناطق زمانی است که سیستم‌عامل‌ها، زبان‌های برنامه‌نویسی و مرورگرهای وب از آن استفاده می‌کنند. این پایگاه داده یک شناسه استاندارد به هر منطقه در قالب منطقه/شهر اختصاص می‌دهد؛ مانند America/New_York یا Asia/Tehran. بر خلاف اختصارهای ثابتی مانند EST یا PST، شناسه‌های IANA تاریخچه کامل تغییرات اختلاف UTC و گذارهای توقیت تابستانی هر منطقه را در خود دارند و تنها روش قابل‌اعتماد برای تبدیل زمان در تاریخ‌های گذشته یا آینده هستند.

این مبدل منطقه زمانی از داده‌های مناطق IANA از طریق Intl API موجود در موتور JavaScript مرورگر شما استفاده می‌کند. یک منطقه زمانی مبدا انتخاب می‌کنید، تاریخ و زمان وارد می‌کنید و ابزار بلافاصله زمان معادل را در منطقه زمانی مقصد محاسبه می‌کند، از جمله هر گونه تنظیم توقیت تابستانی. چون همه چیز در مرورگر شما اجرا می‌شود، هیچ درخواستی به سرور ارسال نمی‌شود و داده‌ای از دستگاه شما خارج نمی‌شود.

چرا از این مبدل منطقه زمانی استفاده کنیم؟

محاسبه دستی مناطق زمانی مستعد خطاست، به خصوص وقتی توقیت تابستانی وارد می‌شود. شهری که در ژانویه UTC-5 است ممکن است در جولای UTC-4 باشد، و تاریخ‌های تغییر بین کشورها متفاوت است. ایالات متحده و اروپا ساعت خود را در یکشنبه‌های متفاوتی تغییر می‌دهند و یک بازه دو هفته‌ای ایجاد می‌شود که در آن اختلاف بین نیویورک و لندن با بقیه سال فرق دارد. این ابزار تمام آن گذارها را به صورت خودکار با استفاده از همان پایگاه داده IANA که سیستم‌عامل شما استفاده می‌کند مدیریت می‌کند.

~
تبدیل فوری
دو منطقه زمانی انتخاب کنید، یک زمان وارد کنید و نتیجه را بلافاصله ببینید. بدون ارسال فرم، بدون بارگذاری مجدد صفحه. تبدیل در حین تایپ به‌روز می‌شود.
~
پشتیبانی کامل از توقیت تابستانی
مبدل گذارهای توقیت تابستانی را به صورت خودکار در نظر می‌گیرد. از داده‌های IANA داخلی مرورگر استفاده می‌کند، بنابراین نتایج اختلاف صحیح را برای هر تاریخی که وارد کنید، چه گذشته چه آینده، نشان می‌دهند.
~
حریم خصوصی در اولویت
تمام تبدیل‌ها به صورت محلی در مرورگر شما با استفاده از Intl API انجام می‌شود. هیچ تاریخ، زمان یا انتخاب منطقه زمانی به هیچ سروری ارسال نمی‌شود.
~
نیازی به حساب کاربری نیست
بدون ثبت‌نام، نصب نرم‌افزار یا دادن مجوز از مبدل استفاده کنید. صفحه را باز کنید، زمان خود را تبدیل کنید و ببندید.

موارد استفاده از مبدل منطقه زمانی

زمان‌بندی در تیم‌های توزیع‌شده
وقتی تیم شما بین تهران، برلین و سنگاپور پراکنده است، پیدا کردن زمان جلسه‌ای که برای همه مناسب باشد نیازمند تبدیل در سه یا چند منطقه زمانی است. یک زمان پیشنهادی در منطقه زمانی محلی خود وارد کنید و فوری ببینید آیا زمان معادل در موقعیت هر عضو تیم در ساعات کاری آن‌ها قرار می‌گیرد یا خیر.
اشکال‌زدایی برچسب زمانی API
پاسخ‌های API اغلب شامل برچسب‌های زمانی به وقت UTC یا منطقه زمانی سرور هستند. این برچسب‌ها را به زمان محلی خود تبدیل کنید تا بررسی کنید رویدادها در زمان مورد انتظار اتفاق افتاده‌اند و منطق مبتنی بر زمان صحیح است.
جدول زمانی حوادث DevOps
در طول یک حادثه، ورودی‌های لاگ ممکن است از سرورهایی در مناطق مختلف بیایند. تمام برچسب‌های زمانی را به یک منطقه زمانی مرجع (معمولاً UTC) تبدیل کنید تا یک جدول زمانی دقیق از رویدادها بسازید.
آزمایش منطق تاریخ در QA
اپلیکیشن‌هایی که تاریخ را برای کاربران در مناطق مختلف نمایش می‌دهند نیاز به آزمایش با ورودی‌های زمانی خاص دارند. از مبدل استفاده کنید تا موارد آزمایشی برای شرایط مرزی مانند ساعت پرش جلو در توقیت تابستانی ایجاد کنید.
هماهنگی پایپلاین داده
کارهای ETL زمان‌بندی‌شده در یک منطقه زمانی ممکن است نیاز داشته باشند با زمان‌بندی منابع داده یا مصرف‌کنندگان پایین‌دستی در منطقه دیگری مطابقت داشته باشند. زمان‌های اجرای زمان‌بندی‌شده را تبدیل کنید تا مطمئن شوید مراحل پایپلاین به ترتیب صحیح اجرا می‌شوند.
یادگیری مفاهیم منطقه زمانی
دانشجویانی که مفاهیم اختلاف UTC، خط تاریخ بین‌المللی و قوانین توقیت تابستانی را یاد می‌گیرند می‌توانند با جفت‌های مختلف منطقه زمانی آزمایش کنند تا ببینند زمان در مناطق مختلف چگونه تغییر می‌کند.

مرجع مناطق زمانی IANA

پایگاه داده مناطق زمانی IANA بیش از ۴۰۰ شناسه منطقه زمانی تعریف می‌کند و چندین بار در سال برای انعکاس تغییرات سیاسی، قوانین جدید توقیت تابستانی و اصلاحات تاریخی به‌روز می‌شود. جدول زیر پرکاربردترین مناطق را با اختلاف‌های 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 آن یک ساعت (گاهی ۳۰ یا ۴۵ دقیقه) برای بخشی از سال تغییر می‌کند. به عنوان مثال، America/New_York در زمستان UTC-5 (EST) و در تابستان UTC-4 (EDT) است. اگر به جای استفاده از شناسه IANA یک اختلاف ثابت کدگذاری کنید، تبدیل‌های شما برای نیمی از سال اشتباه خواهند بود. همیشه از نام کامل IANA مانند America/New_York استفاده کنید، نه یک اختلاف ثابت.
چرا باید از نام‌های IANA به جای اختصاراتی مانند EST یا PST استفاده کنم؟
اختصارات منطقه زمانی مبهم هستند. CST می‌تواند به معنای Central Standard Time (UTC-6)، China Standard Time (UTC+8) یا Cuba Standard Time (UTC-5) باشد. شناسه‌های IANA مانند America/Chicago در سطح جهانی منحصربه‌فرد هستند و تاریخچه کامل تغییرات اختلاف و قوانین توقیت تابستانی آن منطقه را در خود دارند. پایگاه داده IANA توسط Internet Assigned Numbers Authority نگهداری می‌شود و چندین بار در سال به‌روز می‌شود.
چه اتفاقی برای زمانی می‌افتد که در بازه‌ای قرار دارد که ساعت جلو می‌رود؟
وقتی ساعت‌ها به جلو می‌روند، یک ساعت حذف می‌شود. برای مثال در America/New_York، ساعت ۲:۰۰ صبح در دومین یکشنبه مارس مستقیماً به ۳:۰۰ صبح می‌پرد. زمانی مثل ۲:۳۰ صبح در آن تاریخ در آن منطقه زمانی وجود ندارد. اکثر زبان‌های برنامه‌نویسی این مورد را با جلو بردن زمان به ۳:۰۰ صبح یا پرتاب خطا مدیریت می‌کنند، بسته به کتابخانه.
آیا می‌توانم زمان‌ها را برای تاریخ‌های تاریخی به دقت تبدیل کنم؟
بله، اگر از شناسه‌های منطقه زمانی IANA استفاده کنید. پایگاه داده IANA شامل تغییرات اختلاف تاریخی است که به دهه‌ها قبل برمی‌گردد. به عنوان مثال، چین قبل از ۱۹۴۹ از پنج منطقه زمانی استفاده می‌کرد و سپس به یک منطقه واحد (UTC+8) تغییر کرد. پایگاه داده این گذارها را ثبت می‌کند، بنابراین تبدیل یک برچسب زمانی ۱۹۴۵ برای Asia/Shanghai از اختلاف تاریخی صحیح استفاده می‌کند.
چگونه زمان‌ها را در پایگاه داده ذخیره کنم تا از مشکلات منطقه زمانی جلوگیری کنم؟
همه برچسب‌های زمانی را به وقت UTC ذخیره کنید. هنگام نمایش زمان به کاربر، در زمان رندر از UTC به منطقه زمانی محلی او تبدیل کنید. این رویکرد از ابهام جلوگیری می‌کند: یک برچسب زمانی UTC دقیقاً یک معنی دارد، صرف نظر از اینکه سرور یا کاربر در کجا قرار دارد. نوع TIMESTAMPTZ در PostgreSQL و نوع TIMESTAMP در MySQL هر دو مقادیر را به صورت داخلی در UTC ذخیره می‌کنند.
آیا منطقه زمانی با اختلاف ۳۰ یا ۴۵ دقیقه وجود دارد؟
بله. وقت استاندارد هند (Asia/Kolkata) برابر UTC+5:30 است، وقت استاندارد نپال (Asia/Kathmandu) برابر UTC+5:45 است و جزایر چتام (Pacific/Chatham) برابر UTC+12:45 هستند. ایران (Asia/Tehran) از UTC+3:30 استفاده می‌کند. این اختلاف‌های کسری به این معنی است که نمی‌توانید فرض کنید همه اختلاف‌های منطقه زمانی عدد صحیح ساعت هستند وقتی منطق تبدیل می‌نویسید.