What is Timezone Conversion?
A timezone converter translates a date and time from one time zone to another, letting you instantly see what the equivalent time is anywhere in the world. The world is divided into 24 primary time zones, each defined as a fixed offset from Coordinated Universal Time (UTC). When it is 14:00 UTC, it is 09:00 in New York (UTC-5) and 23:00 in Tokyo (UTC+9). Converting between time zones correctly requires knowing the UTC offset of both the source and target zones, and whether daylight saving time (DST) is in effect for either one.
The IANA Time Zone Database (often called the Olson database or tz database) is the standard source of timezone definitions used by operating systems, programming languages, and web browsers. It assigns a canonical identifier to each zone in the format Region/City, such as America/New_York or Asia/Tokyo. Unlike fixed abbreviations like EST or PST, IANA identifiers encode the full history of UTC offset changes and DST transitions for each region, making them the only reliable way to convert time across dates in the past or future.
This timezone converter uses IANA timezone data built into your browser's JavaScript engine via the Intl API. You select a source timezone, enter a date and time, and the tool immediately calculates the equivalent time in your target timezone, including any daylight saving adjustments. Because it runs entirely in your browser, there is no server round-trip and no data leaves your device.
Why Use This Timezone Converter?
Manual timezone math is error-prone, especially when daylight saving time is involved. A city that is UTC-5 in January may be UTC-4 in July, and the transition dates differ between countries. The United States and Europe change their clocks on different Sundays, creating a two-week window where the offset between New York and London differs from the rest of the year. This tool handles all of those transitions automatically using the same IANA database that your operating system uses.
Timezone Converter Use Cases
IANA Timezone Reference
The IANA Time Zone Database defines over 400 timezone identifiers, and is updated several times per year to reflect political changes, new DST rules, and historical corrections. The table below lists the most commonly used zones with their standard UTC offsets and DST behavior. Offsets shown are for standard time; the DST column shows the adjusted offset when daylight saving time is active for that region.
| IANA Identifier | Common Name | UTC Offset | 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) |
Code Examples
Every major programming language provides timezone conversion through the IANA database. The examples below show how to convert a UTC timestamp to other timezones in JavaScript using the Intl API, Python using the zoneinfo module, Go using the time package, and the GNU date command for shell scripts.
// 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