Що таке конвертація часових поясів?
Конвертер часових поясів переводить дату та час з одного часового поясу в інший, дозволяючи миттєво побачити відповідний час у будь-якій точці світу. Світ поділено на 24 основних часових пояси, кожен з яких визначається як фіксоване зміщення відносно Всесвітнього координованого часу (UTC). Коли зараз 14:00 UTC, у Нью-Йорку 09:00 (UTC-5), а в Токіо 23:00 (UTC+9). Правильна конвертація між часовими поясами вимагає знання UTC-зміщення як вихідного, так і цільового поясу, а також того, чи діє в кожному з них літній час (DST).
База даних часових поясів IANA (також відома як база даних Олсона, або tz database) є стандартним джерелом визначень часових поясів, яке використовується операційними системами, мовами програмування та веббраузерами. Вона присвоює кожному поясу канонічний ідентифікатор у форматі Регіон/Місто, наприклад America/New_York або Asia/Tokyo. На відміну від фіксованих абревіатур на кшталт EST або PST, ідентифікатори IANA кодують повну історію змін UTC-зміщення та переходів на DST для кожного регіону, що робить їх єдиним надійним способом конвертувати час для дат у минулому або майбутньому.
Цей конвертер часових поясів використовує дані IANA, вбудовані у рушій JavaScript вашого браузера через Intl API. Ви обираєте вихідний часовий пояс, вводите дату та час, і інструмент миттєво обчислює відповідний час у цільовому поясі з урахуванням будь-яких коригувань літнього часу. Оскільки все виконується безпосередньо у вашому браузері, жодних запитів до сервера немає і жодні дані не залишають ваш пристрій.
Навіщо використовувати цей конвертер часових поясів?
Ручна арифметика часових поясів схильна до помилок, особливо коли задіяний літній час. Місто, що є UTC-5 у січні, може бути UTC-4 у липні, а дати переходу відрізняються між країнами. США та Європа переводять годинники в різні неділі, створюючи двотижневе вікно, протягом якого різниця між Нью-Йорком і Лондоном відрізняється від решти року. Цей інструмент обробляє всі ці переходи автоматично, використовуючи ту саму базу даних IANA, що й ваша операційна система.
Варіанти використання конвертера часових поясів
Довідник часових поясів IANA
База даних часових поясів IANA визначає понад 400 ідентифікаторів і оновлюється кілька разів на рік, щоб відображати політичні зміни, нові правила DST та виправлення историчних даних. У таблиці нижче наведено найпоширеніші пояси зі стандартними UTC-зміщеннями та поведінкою DST. Зміщення вказані для стандартного часу; стовпець DST показує скориговане зміщення, коли в цьому регіоні діє літній час.
| Ідентифікатор IANA | Поширена назва | UTC-зміщення | DST |
|---|---|---|---|
| UTC | Coordinated Universal Time | +00:00 | No |
| America/New_York | Eastern Time (US) | -05:00 | Yes (EDT -04:00) |
| America/Chicago | Central Time (US) | -06:00 | Yes (CDT -05:00) |
| America/Denver | Mountain Time (US) | -07:00 | Yes (MDT -06:00) |
| America/Los_Angeles | Pacific Time (US) | -08:00 | Yes (PDT -07:00) |
| Europe/London | Greenwich Mean Time | +00:00 | Yes (BST +01:00) |
| Europe/Berlin | Central European Time | +01:00 | Yes (CEST +02:00) |
| Europe/Moscow | Moscow Time | +03:00 | No |
| Asia/Dubai | Gulf Standard Time | +04:00 | No |
| Asia/Kolkata | India Standard Time | +05:30 | No |
| Asia/Shanghai | China Standard Time | +08:00 | No |
| Asia/Tokyo | Japan Standard Time | +09:00 | No |
| Australia/Sydney | Australian Eastern Time | +10:00 | Yes (AEDT +11:00) |
| Pacific/Auckland | New Zealand Standard Time | +12:00 | Yes (NZDT +13:00) |
Приклади коду
Кожна основна мова програмування підтримує конвертацію часових поясів через базу даних IANA. Наведені нижче приклади показують, як конвертувати мітку часу UTC в інші часові пояси засобами JavaScript з використанням Intl API, Python з модулем zoneinfo, Go з пакетом time, а також командою GNU date для скриптів оболонки.
// 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"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 CETpackage 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
}# 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