# Timezone Abbreviation

Key: `datetime.offset.timezone_abbreviation`

Short alphabetic timezone abbreviation (EST, EDT, CEST, GMT, UTC, …) — the human-readable shorthand distinct from a full IANA zone name (America/New\_York) or an explicit UTC offset (UTC +05:00).

Page: <https://meridian.online/docs/projects/finetype/types/datetime/offset/timezone_abbreviation>

Samples: `EST`, `CEST`, `GMT`

## Background

### Origin

RFC 822, the Standard for ARPA Internet Text Messages, is dated August 13, 1982.[[1]](https://www.rfc-editor.org/rfc/rfc822.html) RFC 822's date-time syntax allows the zone to be written as UT, GMT, or one of the North American abbreviations EST, EDT, CST, CDT, MST, MDT, PST and PDT.[[1]](https://www.rfc-editor.org/rfc/rfc822.html) RFC 822 also allows single-letter military zones and a numeric local differential written as a sign followed by four digits.[[1]](https://www.rfc-editor.org/rfc/rfc822.html)

RFC 5322 states that EST is semantically equivalent to -0500 and EDT to -0400.[[2]](https://www.rfc-editor.org/rfc/rfc5322.html) RFC 5322 notes that other multi-character alphabetic time zones, usually between 3 and 5 letters, have been used in Internet messages.[[2]](https://www.rfc-editor.org/rfc/rfc5322.html)

The tz database's guidelines ask for abbreviations that are in common use among English-speakers, such as EST for Eastern Standard Time in North America.[[3]](https://data.iana.org/time-zones/theory.html) The tz database's guidelines call for abbreviations of three to six characters that are ASCII alphanumerics or + or -.[[3]](https://data.iana.org/time-zones/theory.html) Where there is no common English abbreviation, the tz database's guidelines say to use numeric offsets such as -05 and +0530.[[3]](https://data.iana.org/time-zones/theory.html)

Alphabetic time zone abbreviations are not part of the international date and time standard ISO 8601.[[4]](https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations)

### Use

The tz database's theory notes that abbreviations are ambiguous in practice, with CST meaning one thing in China and something else in North America.[[3]](https://data.iana.org/time-zones/theory.html) The tz database's theory notes that IST can refer to time in India, Ireland or Israel.[[3]](https://data.iana.org/time-zones/theory.html) Wikipedia's list of time zone abbreviations gives BST as Bangladesh Standard Time, Bougainville Standard Time and British Summer Time.[[4]](https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations) Wikipedia's list gives AST as both Arabia Standard Time (UTC+03:00) and Atlantic Standard Time (UTC−04:00).[[4]](https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations) The tz database's theory advises using numeric UT offsets like -0600 instead of abbreviations like CST to avoid ambiguity.[[3]](https://data.iana.org/time-zones/theory.html)

In PostgreSQL, a time zone abbreviation such as PST merely defines a particular offset from UTC, unlike a full zone name, which can imply daylight-saving transition rules.[[5]](https://www.postgresql.org/docs/current/datatype-datetime.html) PostgreSQL's documentation gives the example that 2014-06-04 12:00 EST means noon at UTC-5 regardless of whether daylight saving was nominally in effect on that date.[[5]](https://www.postgresql.org/docs/current/datatype-datetime.html) PostgreSQL's documentation notes that in Moscow MSK has meant UTC+3 in some years and UTC+4 in others.[[5]](https://www.postgresql.org/docs/current/datatype-datetime.html) PostgreSQL's documentation says time zone abbreviations are not well standardised, so it lets the set accepted in datetime input be customised.[[6]](https://www.postgresql.org/docs/current/datetime-config-files.html) PostgreSQL ships additional Australia and India abbreviation files that add to or modify its Default set.[[6]](https://www.postgresql.org/docs/current/datetime-config-files.html)

Python's datetime.strptime() accepts only UTC, GMT and the values in time.tzname for the machine's locale for %Z, and raises ValueError otherwise.[[7]](https://docs.python.org/3/library/datetime.html) When you meet a column of abbreviations, find out where the data was produced before you map them to offsets, because the same letters can mean different zones. (Meridian's view) Keep the abbreviation beside the local timestamp it qualifies, and convert both together to a UTC timestamp or an explicit offset rather than storing the letters alone. (Meridian's view)

## Sources

1. [Standard for ARPA Internet Text Messages](https://www.rfc-editor.org/rfc/rfc822.html) — standard
2. [Internet Message Format](https://www.rfc-editor.org/rfc/rfc5322.html) — standard
3. [Theory and pragmatics of the tz code and data](https://data.iana.org/time-zones/theory.html) — documentation
4. [List of time zone abbreviations](https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations) — secondary source
5. [PostgreSQL: Documentation: 18: 8.5. Date/Time Types](https://www.postgresql.org/docs/current/datatype-datetime.html) — documentation
6. [PostgreSQL: Documentation: 18: B.4. Date/Time Configuration Files](https://www.postgresql.org/docs/current/datetime-config-files.html) — documentation
7. [datetime — Basic date and time types](https://docs.python.org/3/library/datetime.html) — documentation
