Czym jest konwersja stref czasowych?
Konwerter stref czasowych tłumaczy datę i godzinę z jednej strefy czasowej na inną, umożliwiając natychmiastowe sprawdzenie, która godzina panuje w dowolnym miejscu na świecie. Świat jest podzielony na 24 główne strefy czasowe, z których każda jest zdefiniowana jako stałe przesunięcie względem Skoordynowanego Czasu Uniwersalnego (UTC). Gdy jest 14:00 UTC, w Warszawie jest 15:00 (UTC+1), a w Tokio 23:00 (UTC+9). Poprawna konwersja między strefami czasowymi wymaga znajomości przesunięcia UTC zarówno strefy źródłowej, jak i docelowej, a także tego, czy dla którejś z nich obowiązuje czas letni (DST).
Baza danych stref czasowych IANA (znana też jako baza Olsona lub baza tz) jest standardowym źródłem definicji stref czasowych używanym przez systemy operacyjne, języki programowania i przeglądarki internetowe. Przypisuje ona kanoniczną nazwę każdej strefie w formacie Region/Miasto, np. Europe/Warsaw lub Asia/Tokyo. W przeciwieństwie do stałych skrótów jak CET czy PST, identyfikatory IANA zawierają pełną historię zmian przesunięcia UTC i przejść czasu letniego dla każdego regionu, co czyni je jedynym wiarygodnym sposobem konwersji czasu dla dat w przeszłości i przyszłości.
Ten konwerter stref czasowych korzysta z danych IANA wbudowanych w silnik JavaScript przeglądarki za pośrednictwem API Intl. Wybierasz strefę źródłową, wpisujesz datę i godzinę, a narzędzie natychmiast oblicza odpowiadający czas w strefie docelowej, uwzględniając wszelkie korekty czasu letniego. Ponieważ działa w całości w przeglądarce, nie ma żadnego zapytania do serwera i żadne dane nie opuszczają Twojego urządzenia.
Dlaczego warto używać tego konwertera stref czasowych?
Ręczne obliczanie stref czasowych jest podatne na błędy, zwłaszcza gdy w grę wchodzi czas letni. Miasto z przesunięciem UTC-5 w styczniu może mieć UTC-4 w lipcu, a daty przejść różnią się między krajami. Stany Zjednoczone i Europa przestawiają zegarki w inne niedziele, tworząc dwutygodniowe okno, w którym różnica czasu między Nowym Jorkiem a Londynem odbiega od standardowej wartości. Narzędzie obsługuje wszystkie te przejścia automatycznie, korzystając z tej samej bazy IANA co Twój system operacyjny.
Zastosowania konwertera stref czasowych
Tabela referencyjna stref czasowych IANA
Baza danych stref czasowych IANA definiuje ponad 400 identyfikatorów stref i jest aktualizowana kilka razy w roku, aby odzwierciedlać zmiany polityczne, nowe zasady czasu letniego i korekty historyczne. Poniższa tabela zawiera najczęściej używane strefy wraz ze standardowymi przesunięciami UTC i informacją o czasie letnim. Podane przesunięcia dotyczą czasu standardowego; kolumna DST pokazuje skorygowane przesunięcie, gdy w danym regionie obowiązuje czas letni.
| Identyfikator IANA | Nazwa zwyczajowa | Przesunięcie 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) |
Przykłady kodu
Każdy popularny język programowania zapewnia konwersję stref czasowych przez bazę IANA. Poniższe przykłady pokazują, jak przeliczać znaczniki czasu UTC na inne strefy czasowe w JavaScript przy użyciu API Intl, w Pythonie przy użyciu modułu zoneinfo, w Go przy użyciu pakietu time oraz polecenia GNU date w skryptach powłoki.
// 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