➕ Add a city
Maximum 12 cities. {{ cities.length }} of 12 selected.
🗺️ Cities
| # | IANA zone | Actions |
|---|---|---|
| {{ idx + 1 }} | {{ city }} |
|
⏰ Live clocks
📝 Summary
ℹ️ About World Clock
What this tool does
The World Clock renders the current wall-clock
time, GMT offset, time-zone abbreviation, and daylight-saving
status for up to 12 cities at once, refreshing
once per second. Pick cities from the IANA database (e.g.
America/New_York, Asia/Tokyo),
re-order them, or remove ones you no longer need.
The same algorithm — render this UTC instant in tz X — is exposed via a JSON API endpoint as a snapshot operation, so integrations (Open Graph cards, dashboards, cron-driven reports) can produce identical output without running JavaScript.
How it works (technical details)
-
Live tick. The browser sets a 1-second
setIntervalthat re-readsnew Date()and asks the shared logic module to render that instant in every selected zone. Per-zone formatters are cached, so a 12-city tick is cheap. -
Wall clock per zone. Each row is built by
Intl.DateTimeFormat({ timeZone })for the target IANA zone. The wall-clock year/month/day are whatever the zone observes at the active UTC instant — a zone that has just crossed midnight shows tomorrow's date, even if your local clock still reads yesterday. -
Offset. Reported as
+HH:MM/-HH:MM. Half-hour (India, Iran, Australia/Adelaide) and quarter-hour (Nepal, Chatham Islands) offsets are emitted verbatim. -
DST detection. The tool probes January
and July of the wall-clock year in the same zone. If
offsets match, the zone does not observe DST. If they
differ, the larger-offset half of the year is the DST
window, and
isDstis true iff the active offset matches that larger value. Hemisphere-independent — Sydney's AEDT in January is correctly flagged DST, EST in December is correctly flagged standard time. - Tab-safe. The 1-second interval pauses automatically when the page is navigated away via Hotwire Turbo, and the listener is detached on unmount. No leaked timers across page navigations.
Use cases
- Distributed teams — keep the office cities of your collaborators visible at a glance.
- Trading / markets — track exchange open/close times in NY, London, Tokyo, Hong Kong, Sydney simultaneously.
- On-call rotation — see who is in working hours right now without doing the offset math in your head.
- Family abroad — keep a pinned tab with the cities of friends and family for "is it a polite time to call" checks.
- Programmatic integration — call the snapshot API from a script or scheduled job to produce timezone-aware reports without booting a browser.
Privacy note
The live clocks render entirely in your browser — no network request fires per tick. Only the optional API call sends a request, and it carries just the list of IANA zone names you pass in. No location, device, or identifying data is sent anywhere.
References
- IANA Time Zone Database — authoritative source for the tz names, offsets, and DST rules used here.
-
ECMAScript Internationalisation API
— runtime contract for
Intl.DateTimeFormatwith thetimeZoneoption. - timeanddate.com world clock — operator-friendly reference for spot-checking individual cities.
- For converting one wall-clock time between two zones, see the Time Zone Converter.
- For absolute / epoch timestamp conversion, see the ISO 8601 Formatter and the Unix Timestamp Converter.
API Usage Example:
POST /api/tools/time/world-clock
Content-Type: application/json
{
"operation": "snapshot",
"iso": "2026-06-15T12:00:00Z",
"tzs": [
"America/New_York",
"Europe/London",
"Asia/Tokyo"
]
}