Что такое конвертация часовых поясов?
Конвертер часовых поясов переводит дату и время из одного часового пояса в другой, позволяя мгновенно узнать, какое время соответствует выбранному моменту в любой точке мира. Земной шар разделён на 24 основных часовых пояса, каждый из которых определяется фиксированным смещением от всемирного координированного времени (UTC). Когда по UTC 14:00, в Москве 17:00 (UTC+3), а в Нью-Йорке 09:00 (UTC-5). Корректная конвертация между часовыми поясами требует знания UTC-смещения обоих поясов — источника и цели — а также того, действует ли в каждом из них летнее время (DST).
База данных часовых поясов IANA (известная также как база данных Олсона или tz database) — это стандартный источник определений часовых поясов, используемый операционными системами, языками программирования и браузерами. Каждому поясу присвоён канонический идентификатор в формате Регион/Город, например America/New_York или Asia/Tokyo. В отличие от фиксированных аббревиатур вроде EST или PST, идентификаторы IANA содержат полную историю изменений UTC-смещений и переходов на летнее время для каждого региона — что делает их единственным надёжным способом конвертировать время для прошлых или будущих дат.
Этот конвертер часовых поясов использует данные IANA, встроенные в движок JavaScript вашего браузера через Intl API. Вы выбираете исходный часовой пояс, вводите дату и время — и инструмент мгновенно вычисляет эквивалентное время в целевом поясе с учётом переходов на летнее время. Всё работает полностью в вашем браузере: никаких запросов к серверу, никаких отправляемых данных.
Почему стоит использовать этот конвертер часовых поясов?
Ручные вычисления смещений подвержены ошибкам, особенно когда в игру вступает летнее время. Город с UTC-5 в январе может стать UTC-4 в июле, а даты перехода различаются в разных странах. США и Европа переводят часы в разные воскресенья, создавая двухнедельный промежуток, в течение которого смещение между Нью-Йорком и Лондоном отличается от обычного. Этот инструмент обрабатывает все эти переходы автоматически, используя ту же базу данных IANA, что и ваша операционная система.
Случаи использования конвертера часовых поясов
Справочник часовых поясов IANA
База данных часовых поясов IANA определяет более 400 идентификаторов и обновляется несколько раз в год, отражая политические изменения, новые правила DST и исторические корректировки. В таблице ниже приведены наиболее часто используемые пояса со стандартными UTC-смещениями и информацией о летнем времени. Смещения указаны для стандартного времени; столбец 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