What is an IANA time zone?
IANA time zones (also called Olson zones or tz database zones) are the canonical identifiers maintained at iana.org/time-zones. Each zone is named like Continent/City — America/New_York, Europe/Paris, Asia/Kolkata — and encodes the full history of UTC offsets and DST rules for that location. Every modern operating system, programming language, and database uses this database under the hood.
Why use "America/New_York" instead of "EST"?
Abbreviations like EST, PST, GMT only describe the current offset — they cannot tell you when DST switches. America/New_York is the real zone: in summer it is EDT (UTC-4), in winter EST (UTC-5), and the database knows the exact dates of every transition back to 1883. Using "EST" in code freezes you at -5 even during DST and silently breaks meeting times every spring and fall.
How does DST work in this tool?
The tool uses Intl.DateTimeFormat with the IANA zone you pick — so DST is handled by the browser's built-in tz database and is always correct for the date you input. If you convert a meeting from America/New_York at 9 AM in January, the displayed UTC offset is -05:00 (EST); the same conversion in July returns -04:00 (EDT). You never have to remember the rules; the browser does.
What about historical time zones?
The IANA database goes back to 1970 with high precision and earlier dates with approximation — for example, before 1883 most US cities used local solar time, with "noon" being slightly different in every town. Browsers ship a recent IANA snapshot, so any date from the last few decades will use the correct historical rules (including the year a country last changed its DST policy or moved to a new zone).
Can I convert future dates accurately?
For dates inside the next year or two: yes, because future DST transition dates are already encoded in the tz database. For dates further out, the conversion uses the rules in effect today and assumes they will not change. Governments occasionally cancel DST or shift zones (Russia, Turkey, Mexico in recent years), so the further out you go the more risk of drift — recheck before scheduling things years ahead.
Are abbreviations like IST ambiguous?
Yes — and IST is the canonical example. India Standard Time is UTC+5:30, Israel Standard Time is UTC+2:00, Irish Standard Time is UTC+1:00. CST is even worse: Central Standard Time (US, UTC-6), China Standard Time (UTC+8), Cuba Standard Time (UTC-5). Always use the full IANA zone (Asia/Kolkata, Asia/Jerusalem, Europe/Dublin) to avoid confusion. The pickers in this tool only offer IANA names for that reason.
How do I get the user's local time zone in JavaScript?
Use Intl.DateTimeFormat().resolvedOptions().timeZone — it returns the IANA zone the browser is configured for (e.g. "America/Los_Angeles"). This is the same value the Now button in this tool uses to detect your zone. Avoid trying to derive it from new Date().getTimezoneOffset(), which gives you the offset in minutes but not the zone name and cannot tell DST-aware periods apart.
Why store dates in UTC?
UTC is the only globally unambiguous timeline. Storing as UTC means the same instant has the same string everywhere, sorting works, arithmetic works, and there is no DST surprise. Convert to a user's local zone only at the rendering layer (this tool, an Intl.DateTimeFormat call, a date-fns formatInTimeZone). Storing in local time is the single biggest source of "the report ran twice on DST night" and "the cron job missed an hour" bugs.