Co je převod časových pásem?
Převodník časových pásem překládá datum a čas z jednoho časového pásma do jiného, takže ihned vidíte, jaký je ekvivalentní čas kdekoli na světě. Svět je rozdělen do 24 primárních časových pásem, z nichž každé je definováno jako pevný posun od koordinovaného světového času (UTC). Když je 14:00 UTC, je v New Yorku 09:00 (UTC-5) a v Tokiu 23:00 (UTC+9). Správný převod mezi časovými pásmy vyžaduje znalost posunu UTC obou zón — zdrojové i cílové — a také zda je v každé z nich platné letní čas (DST).
Databáze časových pásem IANA (nazývaná také Olsonova databáze nebo tz database) je standardním zdrojem definic časových pásem, který používají operační systémy, programovací jazyky i webové prohlížeče. Každé zóně přiřazuje kanonický identifikátor ve formátu Oblast/Město, například America/New_York nebo Asia/Tokyo. Na rozdíl od pevných zkratek jako EST nebo PST kódují identifikátory IANA úplnou historii změn posunu UTC a přechodů na letní čas pro každý region, takže jsou jediným spolehlivým způsobem převodu času napříč daty v minulosti i budoucnosti.
Tento převodník časových pásem využívá data IANA zabudovaná do JavaScriptového enginu vašeho prohlížeče prostřednictvím rozhraní Intl API. Vyberete zdrojové časové pásmo, zadáte datum a čas a nástroj okamžitě vypočítá ekvivalentní čas v cílovém časovém pásmu, včetně případných úprav letního času. Protože vše běží přímo ve vašem prohlížeči, nedochází k žádné komunikaci se serverem a žádná data neopouštějí vaše zařízení.
Proč používat tento převodník časových pásem?
Ruční výpočty časových pásem jsou náchylné k chybám, zejména pokud je v hře letní čas. Město, které je v lednu UTC-5, může být v červenci UTC-4, přičemž data přechodů se v jednotlivých zemích liší. Spojené státy a Evropa posouvají hodiny v různé neděle, čímž vzniká dvoutýdenní okno, kdy se posun mezi New Yorkem a Londýnem liší od zbytku roku. Tento nástroj zvládá všechny tyto přechody automaticky pomocí stejné databáze IANA, kterou používá váš operační systém.
Případy použití převodníku časových pásem
Referenční tabulka časových pásem IANA
Databáze časových pásem IANA definuje přes 400 identifikátorů časových pásem a je aktualizována několikrát ročně, aby odrážela politické změny, nová pravidla letního času a historické opravy. Níže uvedená tabulka uvádí nejčastěji používaná pásma s jejich standardními posuny UTC a chováním DST. Zobrazené posuny platí pro standardní čas; sloupec DST ukazuje upravený posun, kdy je v daném regionu aktivní letní čas.
| Identifikátor IANA | Běžný název | Posun 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) |
Příklady kódu
Každý hlavní programovací jazyk poskytuje převod časových pásem prostřednictvím databáze IANA. Níže uvedené příklady ukazují, jak převést timestamp UTC na jiná časová pásma v JavaScriptu pomocí rozhraní Intl API, v Pythonu pomocí modulu zoneinfo, v Go pomocí balíčku time a příkazem GNU date pro shellové skripty.
// 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