UtilitiesTime

Understanding Time Zones and UTC Offsets

The complete reference for UTC, time zone offsets, DST rules, IANA identifiers, IST, and how to convert between zones correctly in code and in daily life.

6 min read

TL;DR — Key Points

UTCCoordinated Universal Time — the global time standard with zero offset. All other time zones are defined as UTC+N or UTC−N hours (and sometimes minutes).
UTC offsetThe difference between a location's local time and UTC. India is UTC+5:30, New York is UTC−5 (EST) or UTC−4 (EDT), London is UTC+0 (GMT) or UTC+1 (BST).
DSTDaylight Saving Time — clocks are advanced by 1 hour in summer in many countries. India, Japan, and China do NOT observe DST. The US and most of Europe do.
IANA timezoneThe authoritative database of timezone identifiers. Format: Region/City. Examples: Asia/Kolkata, America/New_York, Europe/London. Always prefer IANA over abbreviations.
IST (India)Indian Standard Time = UTC+5:30. The 30-minute offset is unusual — most time zones are whole hours. India has a single timezone for the entire country, no DST.
Timezone abbreviationsEST, PST, IST are ambiguous — IST means India Standard Time, Israel Standard Time, AND Ireland Standard Time. Always use IANA identifiers in code.

What Is UTC and Why Does It Exist?

Coordinated Universal Time (UTC) is the primary time standard by which the world regulates clocks and time. It has no daylight saving time adjustment and no political or geographic affiliation — it is a pure, stable reference point defined by a network of atomic clocks maintained by national metrology institutes around the world. Every other time zone on Earth is defined as an offset from UTC: hours and minutes ahead (UTC+) or behind (UTC−).

UTC replaced its predecessor Greenwich Mean Time (GMT) as the international standard in 1960. For practical purposes, UTC and GMT refer to the same time, but UTC is the technically correct term in computing and international standards. When you see timestamps in ISO 8601 format ending in 'Z' — such as 2026-05-21T00:00:00Z — the 'Z' stands for "Zulu time," a military designation for UTC+0.

The reason UTC exists is simple: without a universal reference point, scheduling anything across geographic boundaries is ambiguous. A meeting "at 9 AM" is meaningless without specifying 9 AM where. UTC provides the anchor. All local times are UTC plus or minus an offset, and all computers on the internet synchronise their clocks to UTC via NTP (Network Time Protocol) — which is why the same instant in time is recorded identically in server logs from Mumbai, London, and New York even though their local clocks show different values.

For developers and data professionals, the golden rule is: store everything in UTC, display in local time. Storing local times creates ambiguity — the same local time occurs twice during the "fall back" DST transition, and the correct UTC equivalent cannot be determined without knowing which occurrence was intended.

Major World Time Zones Reference

Key time zones with their IANA identifiers, current UTC offsets, and DST status. IANA identifiers are the authoritative, unambiguous way to reference a timezone in code:

City / RegionIANA IdentifierUTC OffsetDSTAbbreviation
Mumbai / Delhi / BengaluruAsia/KolkataUTC+5:30NoIST
LondonEurope/LondonUTC+0 / UTC+1Yes (Mar–Oct)GMT / BST
New YorkAmerica/New_YorkUTC−5 / UTC−4Yes (Mar–Nov)EST / EDT
Los AngelesAmerica/Los_AngelesUTC−8 / UTC−7Yes (Mar–Nov)PST / PDT
DubaiAsia/DubaiUTC+4NoGST
SingaporeAsia/SingaporeUTC+8NoSGT
TokyoAsia/TokyoUTC+9NoJST
SydneyAustralia/SydneyUTC+10 / UTC+11Yes (Oct–Apr)AEST / AEDT
Paris / BerlinEurope/ParisUTC+1 / UTC+2Yes (Mar–Oct)CET / CEST
MoscowEurope/MoscowUTC+3No (abolished 2014)MSK
Shanghai / BeijingAsia/ShanghaiUTC+8NoCST
São PauloAmerica/Sao_PauloUTC−3 / UTC−2Abolished 2019BRT

IST to World: Quick Conversion Reference

Indian Standard Time (IST, UTC+5:30) is the reference for most Indian professionals working across global teams. Here is what key world times look like relative to IST at 9 AM and 5 PM — the most common business anchor points:

CityOffsetWhen IST = 9:00 AMWhen IST = 5:00 PMFormula
IST (India)UTC+5:309:00 AM5:00 PMReference
Dubai (GST)UTC+47:30 AM3:30 PMIST − 1:30
London (GMT)UTC+03:30 AM11:30 AMIST − 5:30
London (BST summer)UTC+14:30 AM12:30 PMIST − 4:30
New York (EST)UTC−510:30 PM prev6:30 AMIST − 10:30
New York (EDT summer)UTC−411:30 PM prev7:30 AMIST − 9:30
Singapore (SGT)UTC+811:30 AM7:30 PMIST + 2:30
Tokyo (JST)UTC+912:30 PM8:30 PMIST + 3:30
Sydney (AEDT summer)UTC+112:30 PM10:30 PMIST + 5:30

Note: US times shift by 1 hour in March (EDT) and again in November (back to EST). London shifts in late March and late October. Always verify the current offset when scheduling cross-timezone meetings near these transition dates.

Daylight Saving Time — Who Observes It and When

Daylight Saving Time (DST) is the practice of advancing clocks by one hour during summer months to shift an hour of daylight from morning to evening. Approximately 70 countries observe DST, but the dates and rules differ significantly. This is the primary source of timezone bugs in global software — an offset that is correct in January may be wrong in July.

India does not observe DST. IST is UTC+5:30 year-round, making India one of the simpler timezones to work with for international scheduling from an Indian perspective — your time never changes, only the other side's offset does. Japan, China, UAE, and most of Southeast Asia also do not observe DST, making them stable scheduling partners.

RegionDST StartsDST EndsEffect
United States2nd Sunday of March, 2:00 AM1st Sunday of November, 2:00 AMClocks spring forward 1 hour in March, fall back in November
European UnionLast Sunday of March, 1:00 AM UTCLast Sunday of October, 1:00 AM UTCCET becomes CEST (+2), GMT becomes BST (+1)
Australia (NSW, VIC)1st Sunday of October1st Sunday of AprilSouthern hemisphere — DST runs during Oct–Apr (opposite to north)
IndiaDoes not observe DSTDoes not observe DSTIST is UTC+5:30 year-round. No clock changes.
JapanDoes not observe DSTDoes not observe DSTJST is UTC+9 year-round. No clock changes.
ChinaDoes not observe DSTDoes not observe DSTCST is UTC+8 year-round. Single timezone for entire country.
UAE / DubaiDoes not observe DSTDoes not observe DSTGST is UTC+4 year-round — a common meeting anchor for Asia-Europe calls.

Note that Australia's DST runs October through April — the opposite of the northern hemisphere. When northern hemisphere countries are in summer (no DST), Australian cities observing DST are at their maximum offset from UTC. A Sydney-London meeting that works in June may need to move by two hours in December.

IANA Timezone Identifiers vs Abbreviations

Timezone abbreviations like EST, IST, CST, and PST are dangerously ambiguous in software. The same three-letter abbreviation can refer to completely different timezones. IST means India Standard Time (UTC+5:30), Israel Standard Time (UTC+2), and Ireland Standard Time (UTC+1) — three different times, same abbreviation. CST means China Standard Time (UTC+8), US Central Standard Time (UTC−6), and Cuba Standard Time (UTC−5).

The IANA Time Zone Database (also called the Olson database or tz database) is the authoritative, unambiguous reference. It uses the format Region/City — for example Asia/Kolkata, America/New_York, Europe/London, Pacific/Auckland. These identifiers are used by every major operating system, programming language, and database that handles timezones correctly.

IANA identifiers do more than just specify an offset — they encode the full DST history and future rule changes for that timezone. When DST rules change (as they have many times in US history and other countries), the IANA database is updated, and software using IANA identifiers automatically uses the correct rules. Software using hardcoded numeric offsets like UTC+5:30 or UTC−5 cannot automatically adapt to rule changes.

In JavaScript: use Intl.DateTimeFormat().resolvedOptions().timeZone to get the user's IANA timezone. In Python: use the zoneinfo module (Python 3.9+) with ZoneInfo("Asia/Kolkata"). In PostgreSQL: store TIMESTAMPTZ and set the session timezone with SET timezone = 'Asia/Kolkata'. Never hardcode UTC offsets in production code.

How to Handle Common Timezone Scenarios

Apply the following approach for the most frequent real-world timezone situations:

1

You need to store a timestamp in a database that will be read by users in multiple countries

Always store in UTC. Convert to local time only at display time. Never store local time in the database — you lose the ability to reconstruct the correct UTC time when DST rules change.

2

You are scheduling a recurring meeting between India and the US

Be aware that the IST-US offset changes by 1 hour twice a year when the US observes DST (March and November). A meeting at 9 AM EST is 7:30 PM IST; after DST it becomes 8:30 PM IST without anyone moving the clock on the Indian side.

3

You see a timezone abbreviation like IST, CST, or EST in code or data

Never trust abbreviations — look up the IANA identifier. IST is ambiguous (India, Israel, Ireland). CST is ambiguous (China, US Central, Cuba). Use Asia/Kolkata, America/Chicago, or America/Havana to be unambiguous.

4

You are building a scheduling feature for users in multiple countries

Store all times as UTC in the database. Use the user's IANA timezone (from their browser's Intl.DateTimeFormat().resolvedOptions().timeZone) for display. Never ask users to enter a UTC offset manually.

5

You need to convert IST to EST quickly in your head

IST is UTC+5:30. EST is UTC−5. Difference: 10 hours 30 minutes. When it is 9:00 AM IST, it is 10:30 PM EST the previous day. After US DST: 9:30 PM EST.

6

You are parsing a time from a log file that shows a timezone abbreviation

Check where the server is hosted and what OS timezone is configured. Server logs typically use the system timezone, which should be UTC on well-configured servers. If the log shows UTC, parse directly. If it shows local time, you need to know the IANA timezone to convert correctly.

Real-World Timezone Scenarios

Common scheduling and development scenarios with the correct approach:

ScenarioAnswer and Approach
Daily standup at 9 AM IST — what time for London?9:00 AM IST = 3:30 AM GMT (winter) or 4:30 AM BST (summer). Not viable — London team would need to join before dawn.
Daily standup at 9 AM IST — what time for Singapore?9:00 AM IST = 11:30 AM SGT. Viable for both teams.
9 AM New York meeting — what time for Bengaluru?9:00 AM EST = 7:30 PM IST (winter). 9:00 AM EDT = 6:30 PM IST (summer). Evening for India.
Store user's appointment in database (user in Mumbai)Store as UTC: 9:00 AM IST = 3:30 AM UTC. Display back as IST using Asia/Kolkata.
Parse a log timestamp showing 2026-05-21 09:00:00 UTCThis is already UTC. Convert to IST for display: add 5 hours 30 minutes = 2:30 PM IST.
API returns Unix timestamp 1716278400 — what time in IST?1716278400 = May 21, 2026, 00:00:00 UTC. Add 5:30 = May 21, 2026, 5:30 AM IST.

Frequently Asked Questions

What is the difference between UTC and GMT?

For most practical purposes, UTC and GMT are interchangeable — both represent the same time with zero offset. Technically, GMT (Greenwich Mean Time) is a timezone, while UTC (Coordinated Universal Time) is a time standard. UTC is more precisely defined using atomic clocks and occasional leap seconds to stay within 0.9 seconds of astronomical time. In software, always use UTC — 'GMT' in code is often just UTC under a different name, but UTC is the unambiguous standard.

Why does India have a 30-minute UTC offset?

When India standardised its time zones after independence in 1947, it chose a single time zone for the entire country — a practical decision for national unity and rail scheduling. The UTC+5:30 offset was chosen as a compromise between the eastern and western extremes of the country (which span nearly 30 degrees of longitude, theoretically justifying two time zones). The 30-minute offset aligns with the solar noon closer to the centre of the country. Nepal goes further with UTC+5:45, and a handful of other countries also use 30 or 45-minute offsets.

Why does the US have so many time zones?

The continental US spans approximately 60 degrees of longitude — about 4 hours of solar time difference. It uses four standard time zones: Eastern (UTC−5/−4), Central (UTC−6/−5), Mountain (UTC−7/−6), and Pacific (UTC−8/−7). With territories, the US covers 11 time zones total (Hawaii−Aleutian, Alaska, Pacific, Mountain, Central, Eastern, Atlantic, and several territory zones). The timezone boundaries follow state lines and county boundaries rather than strict longitude lines, producing the irregular shapes visible on any US timezone map.

What is the best timezone to use for a global company's internal meetings?

There is no perfect answer — the world is too large for any single overlap to work everywhere. Common strategies: UTC for documentation and scheduling (avoids confusion); a 'company timezone' such as UTC or the HQ location; rotating meeting times so the inconvenience is shared across teams. The Dubai timezone (UTC+4) is often cited as a practical overlap point for Europe and Asia teams — it sits at a working-hours intersection for both continents during their respective morning and afternoon windows.

How do I get a user's timezone in JavaScript?

Use the Intl API: Intl.DateTimeFormat().resolvedOptions().timeZone returns the IANA timezone identifier for the user's browser environment — for example 'Asia/Kolkata' or 'America/New_York'. This is the correct approach. Do not use Date.getTimezoneOffset() alone — it returns a numeric offset in minutes without DST context, and the sign is inverted (negative values mean east of UTC). Always get the IANA identifier and use it with a timezone-aware date library.

Why do logs sometimes show the wrong time after a DST change?

This usually happens when logs store local time instead of UTC, or when a server's timezone is configured incorrectly. If a server in New York stores local EST time and then DST switches to EDT, the offset changes and all stored times become ambiguous near the transition hour. The best practice is to always configure servers to use UTC (timedatectl set-timezone UTC on Linux, or equivalent), store all timestamps in UTC, and convert to local time only at the display layer.

What happens to recurring calendar events when DST changes?

Calendar events defined by local time (e.g. 'every Monday at 9 AM New York') automatically adjust in absolute time when DST changes. A meeting stored as 9:00 AM America/New_York remains at 9:00 AM Eastern even after the clock changes — but the UTC equivalent shifts by an hour. Participants in non-DST countries (like India) will see the meeting time change by one hour in their calendar when the organiser's country transitions. This is the correct behaviour for recurring events defined in local time.

Is UTC+5:30 the same as IST everywhere?

Almost, but terminology matters. UTC+5:30 is a numeric offset — it describes an offset but does not specify which timezone applies DST rules. IST (Indian Standard Time) is the name for the Asia/Kolkata timezone, which is UTC+5:30 year-round with no DST. Sri Lanka Standard Time (SLST) is also UTC+5:30. Nepal is UTC+5:45. If you specify 'UTC+5:30' without a timezone name or IANA identifier, anyone parsing the time knows the offset but not the DST rules. In code, always use Asia/Kolkata rather than UTC+5:30 to be unambiguous.

Related Concepts

Related Tools

World Clock

See the current time in Mumbai, London, New York, Singapore, Tokyo and 30+ cities simultaneously.

Open Tool →

Time Zone Converter

Convert any time between any two time zones — handles DST automatically.

Open Tool →

Timestamp to Date Converter

Convert any Unix timestamp to a human-readable date in any timezone.

Open Tool →

Timezone Calculator

Calculate the time difference between any two cities or UTC offsets.

Open Tool →