Coordinating across cities has always meant mental arithmetic — “they are UTC-5, it is 3 pm here so that is… 8 am there?” — and that arithmetic goes wrong as soon as daylight saving shifts one country but not another. This calculator removes the guesswork entirely.
Add any combination of cities and regions from a list of more than 70 IANA time zones, and the tool immediately shows the live local time in each one, the UTC offset at this exact instant (DST-aware), and the signed hour-and-minute gap relative to the first zone in your list. Switch to “custom date/time” mode and you can instead anchor the display to any moment you choose, interpreted in whichever zone that time belongs to — perfect for planning a meeting next Tuesday or checking what a deadline means across time zones.
How it works
The tool uses the browser’s built-in Intl.DateTimeFormat API, which ships with a complete IANA time-zone database. No external API calls are made. Two calls power most of the display:
- Wall clock —
Intl.DateTimeFormatwithhour,minute,secondand the targettimeZoneoption returns the local time in that zone for any given Unix timestamp. - UTC offset — the same API called with
timeZoneName: "shortOffset"returns a string likeGMT+5:30orGMT-8. The calculator parses the sign, hours and minutes from that string and formats it asUTC+05:30orUTC-08:00.
The “diff from first” column is simple subtraction: offset(zone N) - offset(zone 1). Because both offsets are computed from the same UTC epoch, the difference is valid even when the two zones are on opposite sides of a DST boundary.
The SVG offset diagram maps each zone’s UTC offset to a horizontal position on a shared track. The leftmost point is the most-negative offset (furthest west) and the rightmost is the most-positive (furthest east). Each zone’s current wall-clock time is labelled beneath its tick mark, so you can glance at the diagram and immediately see the spread.
Example: scheduling a call between London, New York and Tokyo
Suppose it is 10:00 on a Wednesday in London (BST, UTC+1) and you want to find a slot that works for all three cities.
| City | UTC offset (summer) | 10:00 London = |
|---|---|---|
| London | UTC+1 | 10:00 Wed |
| New York | UTC-4 | 05:00 Wed |
| Tokyo | UTC+9 | 18:00 Wed |
A 10 am London call is 5 am in New York — too early. Push it to 14:00 London and New York sees 09:00, Tokyo sees 22:00. A 22:00 end-of-day call works for Tokyo if the meeting is short. The tool shows all three columns simultaneously so you can slide the custom time until every city lands in a reasonable window.
Formula note
The offset in minutes for any IANA zone Z at Unix epoch E is extracted from
Intl.DateTimeFormat("en-US", { timeZone: Z, timeZoneName: "shortOffset" }).
The returned GMT string is parsed as:
offset_minutes = sign * (hours * 60 + minutes)
where sign is +1 for zones east of UTC and -1 for zones west. The hour difference between two zones A and B is then:
diff_hours = (offset_A - offset_B) / 60
All arithmetic is performed in integer minutes to avoid floating-point rounding errors when zones like India (UTC+5:30) or Newfoundland (UTC-3:30) are involved.