Fork me on GitHub

Timezone map files

tzmap files (suffix .tzm) provide an alternative means to specify the timezone of a date/time. By default, in dateutils and many other software environments, timezones are either specified directly, e.g. by appending the offset to UTC as in +04:00, or, more accurately when DST shifts are taken into account, by using an IANA zoneinfo name, e.g. CEST or Europe/Berlin.

Often however, the appropriate IANA zoneinfo name requires profound domain knowledge, e.g. you’d have to know that all parts of the UK share the same zonename (GB or Europe/London) and while there is Europe/London and Europe/Belfast, by analogy Europe/Edinburgh and Europe/Cardiff are missing. And while most of Western mainland Europe nowadays uses CEST, it is important to distinguish strictly between the cities for dates before 1960. Such intricacies might be more or less commonly known, but when you approach timezones from a different domain, e.g. airport codes, the problems start to multiply.

tzmap files take a specifier in a particular domain and map it to one or more IANA zoneinfo names. Whenever the mapping is unique the software environment ought to accept the specifier in-lieu of a zoneinfo name. In particular, dateutils (from v0.3.0 onwards) allows alternative specifiers in the format DOMAIN:SPECIFIER, where DOMAIN.tzmap is a file in the tzmap search path and SPECIFIER is a valid entry therein mapping it to a zoneinfo name.

tzmap files are simply tab-separated lists of the format:

SPECIFIER \t ZONENAME [\t ZONENAME]...

sorted by SPECIFIER. On this site we provide mappings from IATA and ICAO airport codes, as well as mappings from Market Identification Codes (MIC).

iata.tzmap

This list maps airports by their IATA 3-letter airport code to the local IANA timezone. It is generally assumed that the airport in question indeed operates in local time.

icao.tzmap

This list maps airports by their ICAO 4-letter airport code to the local IANA timezone. It is generally assumed that the airport in question indeed operates in local time.

mic.tzmap

This list maps market codes to their IANA timezones based on a market’s official trading hours and report times. I.e. the mapping does not necessarily reflect where the market is headquartered.

Development

The above .tzmap files are managed in the tzmaps branch of the dateutils repository. Patches are welcome.

Seeing as the maps are largely independent, there will be no releases. The latest version of the maps can always be downloaded through the provided links.