Full Code of nayarsystems/posix_tz_db for AI

master 93447c0ddac3 cached
6 files
44.0 KB
19.5k tokens
4 symbols
1 requests
Download .txt
Repository: nayarsystems/posix_tz_db
Branch: master
Commit: 93447c0ddac3
Files: 6
Total size: 44.0 KB

Directory structure:
gitextract_yo6jj1ip/

├── .gitignore
├── LICENSE
├── README.md
├── gen-tz.py
├── zones.csv
└── zones.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
CLAUDE.md

================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) [year] [fullname]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

================================================
FILE: README.md
================================================
# POSIX Timezone Database Generator

A simple Python tool that generates POSIX timezone strings from system timezone data.

## Overview

This tool reads binary timezone files from `/usr/share/zoneinfo/` and extracts POSIX timezone strings, outputting them in either CSV or JSON format. It covers 469 timezone identifiers including all major regions worldwide.

## Usage

```bash
# Generate CSV output
python gen-tz.py --csv

# Generate JSON output
python gen-tz.py --json

# Save to files
python gen-tz.py --csv > zones.csv
python gen-tz.py --json > zones.json
```

## Output Format

### CSV Format
```csv
"America/New_York","EST5EDT,M3.2.0,M11.1.0"
"Europe/London","GMT0BST,M3.5.0/1,M10.5.0"
"Asia/Tokyo","JST-9"
```

### JSON Format
```json
{
  "America/New_York": "EST5EDT,M3.2.0,M11.1.0",
  "Europe/London": "GMT0BST,M3.5.0/1,M10.5.0",
  "Asia/Tokyo": "JST-9"
}
```

## POSIX Timezone String Format

The POSIX strings encode timezone rules including:
- Standard time abbreviation and UTC offset
- Daylight saving time rules (if applicable)
- DST transition dates using the format `M<month>.<week>.<day>`

Examples:
- `GMT0` - Greenwich Mean Time, no DST
- `EST5EDT,M3.2.0,M11.1.0` - Eastern Time with DST transitions
- `JST-9` - Japan Standard Time, UTC+9, no DST

## Requirements

- Python 3 (standard library only)
- System timezone data (`/usr/share/zoneinfo/`)
- No external dependencies

## License

MIT License - See LICENSE file for details

================================================
FILE: gen-tz.py
================================================
#!/usr/bin/env python

import sys
import argparse
import json

ZONES_DIR = "/usr/share/zoneinfo/"
ZONES = [
    "Africa/Abidjan",
    "Africa/Accra",
    "Africa/Addis_Ababa",
    "Africa/Algiers",
    "Africa/Asmara",
    "Africa/Bamako",
    "Africa/Bangui",
    "Africa/Banjul",
    "Africa/Bissau",
    "Africa/Blantyre",
    "Africa/Brazzaville",
    "Africa/Bujumbura",
    "Africa/Cairo",
    "Africa/Casablanca",
    "Africa/Ceuta",
    "Africa/Conakry",
    "Africa/Dakar",
    "Africa/Dar_es_Salaam",
    "Africa/Djibouti",
    "Africa/Douala",
    "Africa/El_Aaiun",
    "Africa/Freetown",
    "Africa/Gaborone",
    "Africa/Harare",
    "Africa/Johannesburg",
    "Africa/Juba",
    "Africa/Kampala",
    "Africa/Khartoum",
    "Africa/Kigali",
    "Africa/Kinshasa",
    "Africa/Lagos",
    "Africa/Libreville",
    "Africa/Lome",
    "Africa/Luanda",
    "Africa/Lubumbashi",
    "Africa/Lusaka",
    "Africa/Malabo",
    "Africa/Maputo",
    "Africa/Maseru",
    "Africa/Mbabane",
    "Africa/Mogadishu",
    "Africa/Monrovia",
    "Africa/Nairobi",
    "Africa/Ndjamena",
    "Africa/Niamey",
    "Africa/Nouakchott",
    "Africa/Ouagadougou",
    "Africa/Porto-Novo",
    "Africa/Sao_Tome",
    "Africa/Tripoli",
    "Africa/Tunis",
    "Africa/Windhoek",
    "America/Adak",
    "America/Anchorage",
    "America/Anguilla",
    "America/Antigua",
    "America/Araguaina",
    "America/Argentina/Buenos_Aires",
    "America/Argentina/Catamarca",
    "America/Argentina/Cordoba",
    "America/Argentina/Jujuy",
    "America/Argentina/La_Rioja",
    "America/Argentina/Mendoza",
    "America/Argentina/Rio_Gallegos",
    "America/Argentina/Salta",
    "America/Argentina/San_Juan",
    "America/Argentina/San_Luis",
    "America/Argentina/Tucuman",
    "America/Argentina/Ushuaia",
    "America/Aruba",
    "America/Asuncion",
    "America/Atikokan",
    "America/Bahia",
    "America/Bahia_Banderas",
    "America/Barbados",
    "America/Belem",
    "America/Belize",
    "America/Blanc-Sablon",
    "America/Boa_Vista",
    "America/Bogota",
    "America/Boise",
    "America/Cambridge_Bay",
    "America/Campo_Grande",
    "America/Cancun",
    "America/Caracas",
    "America/Cayenne",
    "America/Cayman",
    "America/Chicago",
    "America/Chihuahua",
    "America/Costa_Rica",
    "America/Creston",
    "America/Cuiaba",
    "America/Curacao",
    "America/Danmarkshavn",
    "America/Dawson",
    "America/Dawson_Creek",
    "America/Denver",
    "America/Detroit",
    "America/Dominica",
    "America/Edmonton",
    "America/Eirunepe",
    "America/El_Salvador",
    "America/Fortaleza",
    "America/Fort_Nelson",
    "America/Glace_Bay",
    "America/Godthab",
    "America/Goose_Bay",
    "America/Grand_Turk",
    "America/Grenada",
    "America/Guadeloupe",
    "America/Guatemala",
    "America/Guayaquil",
    "America/Guyana",
    "America/Halifax",
    "America/Havana",
    "America/Hermosillo",
    "America/Indiana/Indianapolis",
    "America/Indiana/Knox",
    "America/Indiana/Marengo",
    "America/Indiana/Petersburg",
    "America/Indiana/Tell_City",
    "America/Indiana/Vevay",
    "America/Indiana/Vincennes",
    "America/Indiana/Winamac",
    "America/Inuvik",
    "America/Iqaluit",
    "America/Jamaica",
    "America/Juneau",
    "America/Kentucky/Louisville",
    "America/Kentucky/Monticello",
    "America/Kralendijk",
    "America/La_Paz",
    "America/Lima",
    "America/Los_Angeles",
    "America/Lower_Princes",
    "America/Maceio",
    "America/Managua",
    "America/Manaus",
    "America/Marigot",
    "America/Martinique",
    "America/Matamoros",
    "America/Mazatlan",
    "America/Menominee",
    "America/Merida",
    "America/Metlakatla",
    "America/Mexico_City",
    "America/Miquelon",
    "America/Moncton",
    "America/Monterrey",
    "America/Montevideo",
    "America/Montreal",
    "America/Montserrat",
    "America/Nassau",
    "America/New_York",
    "America/Nipigon",
    "America/Nome",
    "America/Noronha",
    "America/North_Dakota/Beulah",
    "America/North_Dakota/Center",
    "America/North_Dakota/New_Salem",
    "America/Nuuk",
    "America/Ojinaga",
    "America/Panama",
    "America/Pangnirtung",
    "America/Paramaribo",
    "America/Phoenix",
    "America/Port-au-Prince",
    "America/Port_of_Spain",
    "America/Porto_Velho",
    "America/Puerto_Rico",
    "America/Punta_Arenas",
    "America/Rainy_River",
    "America/Rankin_Inlet",
    "America/Recife",
    "America/Regina",
    "America/Resolute",
    "America/Rio_Branco",
    "America/Santarem",
    "America/Santiago",
    "America/Santo_Domingo",
    "America/Sao_Paulo",
    "America/Scoresbysund",
    "America/Sitka",
    "America/St_Barthelemy",
    "America/St_Johns",
    "America/St_Kitts",
    "America/St_Lucia",
    "America/St_Thomas",
    "America/St_Vincent",
    "America/Swift_Current",
    "America/Tegucigalpa",
    "America/Thule",
    "America/Thunder_Bay",
    "America/Tijuana",
    "America/Toronto",
    "America/Tortola",
    "America/Vancouver",
    "America/Whitehorse",
    "America/Winnipeg",
    "America/Yakutat",
    "America/Yellowknife",
    "Antarctica/Casey",
    "Antarctica/Davis",
    "Antarctica/DumontDUrville",
    "Antarctica/Macquarie",
    "Antarctica/Mawson",
    "Antarctica/McMurdo",
    "Antarctica/Palmer",
    "Antarctica/Rothera",
    "Antarctica/Syowa",
    "Antarctica/Troll",
    "Antarctica/Vostok",
    "Arctic/Longyearbyen",
    "Asia/Aden",
    "Asia/Almaty",
    "Asia/Amman",
    "Asia/Anadyr",
    "Asia/Aqtau",
    "Asia/Aqtobe",
    "Asia/Ashgabat",
    "Asia/Atyrau",
    "Asia/Baghdad",
    "Asia/Bahrain",
    "Asia/Baku",
    "Asia/Bangkok",
    "Asia/Barnaul",
    "Asia/Beirut",
    "Asia/Bishkek",
    "Asia/Brunei",
    "Asia/Chita",
    "Asia/Choibalsan",
    "Asia/Colombo",
    "Asia/Damascus",
    "Asia/Dhaka",
    "Asia/Dili",
    "Asia/Dubai",
    "Asia/Dushanbe",
    "Asia/Famagusta",
    "Asia/Gaza",
    "Asia/Hebron",
    "Asia/Ho_Chi_Minh",
    "Asia/Hong_Kong",
    "Asia/Hovd",
    "Asia/Irkutsk",
    "Asia/Jakarta",
    "Asia/Jayapura",
    "Asia/Jerusalem",
    "Asia/Kabul",
    "Asia/Kamchatka",
    "Asia/Karachi",
    "Asia/Kathmandu",
    "Asia/Khandyga",
    "Asia/Kolkata",
    "Asia/Krasnoyarsk",
    "Asia/Kuala_Lumpur",
    "Asia/Kuching",
    "Asia/Kuwait",
    "Asia/Macau",
    "Asia/Magadan",
    "Asia/Makassar",
    "Asia/Manila",
    "Asia/Muscat",
    "Asia/Nicosia",
    "Asia/Novokuznetsk",
    "Asia/Novosibirsk",
    "Asia/Omsk",
    "Asia/Oral",
    "Asia/Phnom_Penh",
    "Asia/Pontianak",
    "Asia/Pyongyang",
    "Asia/Qatar",
    "Asia/Qyzylorda",
    "Asia/Riyadh",
    "Asia/Sakhalin",
    "Asia/Samarkand",
    "Asia/Seoul",
    "Asia/Shanghai",
    "Asia/Singapore",
    "Asia/Srednekolymsk",
    "Asia/Taipei",
    "Asia/Tashkent",
    "Asia/Tbilisi",
    "Asia/Tehran",
    "Asia/Thimphu",
    "Asia/Tokyo",
    "Asia/Tomsk",
    "Asia/Ulaanbaatar",
    "Asia/Urumqi",
    "Asia/Ust-Nera",
    "Asia/Vientiane",
    "Asia/Vladivostok",
    "Asia/Yakutsk",
    "Asia/Yangon",
    "Asia/Yekaterinburg",
    "Asia/Yerevan",
    "Atlantic/Azores",
    "Atlantic/Bermuda",
    "Atlantic/Canary",
    "Atlantic/Cape_Verde",
    "Atlantic/Faroe",
    "Atlantic/Madeira",
    "Atlantic/Reykjavik",
    "Atlantic/South_Georgia",
    "Atlantic/Stanley",
    "Atlantic/St_Helena",
    "Australia/Adelaide",
    "Australia/Brisbane",
    "Australia/Broken_Hill",
    "Australia/Currie",
    "Australia/Darwin",
    "Australia/Eucla",
    "Australia/Hobart",
    "Australia/Lindeman",
    "Australia/Lord_Howe",
    "Australia/Melbourne",
    "Australia/Perth",
    "Australia/Sydney",
    "Europe/Amsterdam",
    "Europe/Andorra",
    "Europe/Astrakhan",
    "Europe/Athens",
    "Europe/Belgrade",
    "Europe/Berlin",
    "Europe/Bratislava",
    "Europe/Brussels",
    "Europe/Bucharest",
    "Europe/Budapest",
    "Europe/Busingen",
    "Europe/Chisinau",
    "Europe/Copenhagen",
    "Europe/Dublin",
    "Europe/Gibraltar",
    "Europe/Guernsey",
    "Europe/Helsinki",
    "Europe/Isle_of_Man",
    "Europe/Istanbul",
    "Europe/Jersey",
    "Europe/Kaliningrad",
    "Europe/Kiev",
    "Europe/Kirov",
    "Europe/Lisbon",
    "Europe/Ljubljana",
    "Europe/London",
    "Europe/Luxembourg",
    "Europe/Madrid",
    "Europe/Malta",
    "Europe/Mariehamn",
    "Europe/Minsk",
    "Europe/Monaco",
    "Europe/Moscow",
    "Europe/Oslo",
    "Europe/Paris",
    "Europe/Podgorica",
    "Europe/Prague",
    "Europe/Riga",
    "Europe/Rome",
    "Europe/Samara",
    "Europe/San_Marino",
    "Europe/Sarajevo",
    "Europe/Saratov",
    "Europe/Simferopol",
    "Europe/Skopje",
    "Europe/Sofia",
    "Europe/Stockholm",
    "Europe/Tallinn",
    "Europe/Tirane",
    "Europe/Ulyanovsk",
    "Europe/Uzhgorod",
    "Europe/Vaduz",
    "Europe/Vatican",
    "Europe/Vienna",
    "Europe/Vilnius",
    "Europe/Volgograd",
    "Europe/Warsaw",
    "Europe/Zagreb",
    "Europe/Zaporozhye",
    "Europe/Zurich",
    "Indian/Antananarivo",
    "Indian/Chagos",
    "Indian/Christmas",
    "Indian/Cocos",
    "Indian/Comoro",
    "Indian/Kerguelen",
    "Indian/Mahe",
    "Indian/Maldives",
    "Indian/Mauritius",
    "Indian/Mayotte",
    "Indian/Reunion",
    "Pacific/Apia",
    "Pacific/Auckland",
    "Pacific/Bougainville",
    "Pacific/Chatham",
    "Pacific/Chuuk",
    "Pacific/Easter",
    "Pacific/Efate",
    "Pacific/Enderbury",
    "Pacific/Fakaofo",
    "Pacific/Fiji",
    "Pacific/Funafuti",
    "Pacific/Galapagos",
    "Pacific/Gambier",
    "Pacific/Guadalcanal",
    "Pacific/Guam",
    "Pacific/Honolulu",
    "Pacific/Kiritimati",
    "Pacific/Kosrae",
    "Pacific/Kwajalein",
    "Pacific/Majuro",
    "Pacific/Marquesas",
    "Pacific/Midway",
    "Pacific/Nauru",
    "Pacific/Niue",
    "Pacific/Norfolk",
    "Pacific/Noumea",
    "Pacific/Pago_Pago",
    "Pacific/Palau",
    "Pacific/Pitcairn",
    "Pacific/Pohnpei",
    "Pacific/Port_Moresby",
    "Pacific/Rarotonga",
    "Pacific/Saipan",
    "Pacific/Tahiti",
    "Pacific/Tarawa",
    "Pacific/Tongatapu",
    "Pacific/Wake",
    "Pacific/Wallis",
    "Etc/GMT",
    "Etc/GMT-0",
    "Etc/GMT-1",
    "Etc/GMT-2",
    "Etc/GMT-3",
    "Etc/GMT-4",
    "Etc/GMT-5",
    "Etc/GMT-6",
    "Etc/GMT-7",
    "Etc/GMT-8",
    "Etc/GMT-9",
    "Etc/GMT-10",
    "Etc/GMT-11",
    "Etc/GMT-12",
    "Etc/GMT-13",
    "Etc/GMT-14",
    "Etc/GMT0",
    "Etc/GMT+0",
    "Etc/GMT+1",
    "Etc/GMT+2",
    "Etc/GMT+3",
    "Etc/GMT+4",
    "Etc/GMT+5",
    "Etc/GMT+6",
    "Etc/GMT+7",
    "Etc/GMT+8",
    "Etc/GMT+9",
    "Etc/GMT+10",
    "Etc/GMT+11",
    "Etc/GMT+12",
    "Etc/UCT",
    "Etc/UTC",
    "Etc/Greenwich",
    "Etc/Universal",
    "Etc/Zulu"
]


def get_tz_string(timezone):
    data = open(ZONES_DIR + timezone, "rb").read().split(b"\n")[-2]
    return data.decode("utf-8")


def make_timezones_dict():
    result = {}
    for timezone in ZONES:
        timezone = timezone.strip()
        result[timezone] = get_tz_string(timezone)
    return result


def print_csv(timezones_dict):
    for name, tz in timezones_dict.items():
        print('"{}","{}"'.format(name, tz))


def print_json(timezones_dict):
    json.dump(timezones_dict, sys.stdout, indent=0, sort_keys=True, separators=(",", ":"))


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Generates POSIX timezones strings reading data from " + ZONES_DIR)
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument("-j", "--json", action="store_true", help="outputs JSON")
    group.add_argument("-c", "--csv", action="store_true", help="outputs CSV")
    data = parser.parse_args()

    timezones = make_timezones_dict()

    if data.json:
        print_json(timezones)
    else:
        print_csv(timezones)


================================================
FILE: zones.csv
================================================
"Africa/Abidjan","GMT0"
"Africa/Accra","GMT0"
"Africa/Addis_Ababa","EAT-3"
"Africa/Algiers","CET-1"
"Africa/Asmara","EAT-3"
"Africa/Bamako","GMT0"
"Africa/Bangui","WAT-1"
"Africa/Banjul","GMT0"
"Africa/Bissau","GMT0"
"Africa/Blantyre","CAT-2"
"Africa/Brazzaville","WAT-1"
"Africa/Bujumbura","CAT-2"
"Africa/Cairo","EET-2EEST,M4.5.5/0,M10.5.4/24"
"Africa/Casablanca","<+01>-1"
"Africa/Ceuta","CET-1CEST,M3.5.0,M10.5.0/3"
"Africa/Conakry","GMT0"
"Africa/Dakar","GMT0"
"Africa/Dar_es_Salaam","EAT-3"
"Africa/Djibouti","EAT-3"
"Africa/Douala","WAT-1"
"Africa/El_Aaiun","<+01>-1"
"Africa/Freetown","GMT0"
"Africa/Gaborone","CAT-2"
"Africa/Harare","CAT-2"
"Africa/Johannesburg","SAST-2"
"Africa/Juba","CAT-2"
"Africa/Kampala","EAT-3"
"Africa/Khartoum","CAT-2"
"Africa/Kigali","CAT-2"
"Africa/Kinshasa","WAT-1"
"Africa/Lagos","WAT-1"
"Africa/Libreville","WAT-1"
"Africa/Lome","GMT0"
"Africa/Luanda","WAT-1"
"Africa/Lubumbashi","CAT-2"
"Africa/Lusaka","CAT-2"
"Africa/Malabo","WAT-1"
"Africa/Maputo","CAT-2"
"Africa/Maseru","SAST-2"
"Africa/Mbabane","SAST-2"
"Africa/Mogadishu","EAT-3"
"Africa/Monrovia","GMT0"
"Africa/Nairobi","EAT-3"
"Africa/Ndjamena","WAT-1"
"Africa/Niamey","WAT-1"
"Africa/Nouakchott","GMT0"
"Africa/Ouagadougou","GMT0"
"Africa/Porto-Novo","WAT-1"
"Africa/Sao_Tome","GMT0"
"Africa/Tripoli","EET-2"
"Africa/Tunis","CET-1"
"Africa/Windhoek","CAT-2"
"America/Adak","HST10HDT,M3.2.0,M11.1.0"
"America/Anchorage","AKST9AKDT,M3.2.0,M11.1.0"
"America/Anguilla","AST4"
"America/Antigua","AST4"
"America/Araguaina","<-03>3"
"America/Argentina/Buenos_Aires","<-03>3"
"America/Argentina/Catamarca","<-03>3"
"America/Argentina/Cordoba","<-03>3"
"America/Argentina/Jujuy","<-03>3"
"America/Argentina/La_Rioja","<-03>3"
"America/Argentina/Mendoza","<-03>3"
"America/Argentina/Rio_Gallegos","<-03>3"
"America/Argentina/Salta","<-03>3"
"America/Argentina/San_Juan","<-03>3"
"America/Argentina/San_Luis","<-03>3"
"America/Argentina/Tucuman","<-03>3"
"America/Argentina/Ushuaia","<-03>3"
"America/Aruba","AST4"
"America/Asuncion","<-03>3"
"America/Atikokan","EST5"
"America/Bahia","<-03>3"
"America/Bahia_Banderas","CST6"
"America/Barbados","AST4"
"America/Belem","<-03>3"
"America/Belize","CST6"
"America/Blanc-Sablon","AST4"
"America/Boa_Vista","<-04>4"
"America/Bogota","<-05>5"
"America/Boise","MST7MDT,M3.2.0,M11.1.0"
"America/Cambridge_Bay","MST7MDT,M3.2.0,M11.1.0"
"America/Campo_Grande","<-04>4"
"America/Cancun","EST5"
"America/Caracas","<-04>4"
"America/Cayenne","<-03>3"
"America/Cayman","EST5"
"America/Chicago","CST6CDT,M3.2.0,M11.1.0"
"America/Chihuahua","CST6"
"America/Costa_Rica","CST6"
"America/Creston","MST7"
"America/Cuiaba","<-04>4"
"America/Curacao","AST4"
"America/Danmarkshavn","GMT0"
"America/Dawson","MST7"
"America/Dawson_Creek","MST7"
"America/Denver","MST7MDT,M3.2.0,M11.1.0"
"America/Detroit","EST5EDT,M3.2.0,M11.1.0"
"America/Dominica","AST4"
"America/Edmonton","MST7MDT,M3.2.0,M11.1.0"
"America/Eirunepe","<-05>5"
"America/El_Salvador","CST6"
"America/Fortaleza","<-03>3"
"America/Fort_Nelson","MST7"
"America/Glace_Bay","AST4ADT,M3.2.0,M11.1.0"
"America/Godthab","<-02>2<-01>,M3.5.0/-1,M10.5.0/0"
"America/Goose_Bay","AST4ADT,M3.2.0,M11.1.0"
"America/Grand_Turk","EST5EDT,M3.2.0,M11.1.0"
"America/Grenada","AST4"
"America/Guadeloupe","AST4"
"America/Guatemala","CST6"
"America/Guayaquil","<-05>5"
"America/Guyana","<-04>4"
"America/Halifax","AST4ADT,M3.2.0,M11.1.0"
"America/Havana","CST5CDT,M3.2.0/0,M11.1.0/1"
"America/Hermosillo","MST7"
"America/Indiana/Indianapolis","EST5EDT,M3.2.0,M11.1.0"
"America/Indiana/Knox","CST6CDT,M3.2.0,M11.1.0"
"America/Indiana/Marengo","EST5EDT,M3.2.0,M11.1.0"
"America/Indiana/Petersburg","EST5EDT,M3.2.0,M11.1.0"
"America/Indiana/Tell_City","CST6CDT,M3.2.0,M11.1.0"
"America/Indiana/Vevay","EST5EDT,M3.2.0,M11.1.0"
"America/Indiana/Vincennes","EST5EDT,M3.2.0,M11.1.0"
"America/Indiana/Winamac","EST5EDT,M3.2.0,M11.1.0"
"America/Inuvik","MST7MDT,M3.2.0,M11.1.0"
"America/Iqaluit","EST5EDT,M3.2.0,M11.1.0"
"America/Jamaica","EST5"
"America/Juneau","AKST9AKDT,M3.2.0,M11.1.0"
"America/Kentucky/Louisville","EST5EDT,M3.2.0,M11.1.0"
"America/Kentucky/Monticello","EST5EDT,M3.2.0,M11.1.0"
"America/Kralendijk","AST4"
"America/La_Paz","<-04>4"
"America/Lima","<-05>5"
"America/Los_Angeles","PST8PDT,M3.2.0,M11.1.0"
"America/Lower_Princes","AST4"
"America/Maceio","<-03>3"
"America/Managua","CST6"
"America/Manaus","<-04>4"
"America/Marigot","AST4"
"America/Martinique","AST4"
"America/Matamoros","CST6CDT,M3.2.0,M11.1.0"
"America/Mazatlan","MST7"
"America/Menominee","CST6CDT,M3.2.0,M11.1.0"
"America/Merida","CST6"
"America/Metlakatla","AKST9AKDT,M3.2.0,M11.1.0"
"America/Mexico_City","CST6"
"America/Miquelon","<-03>3<-02>,M3.2.0,M11.1.0"
"America/Moncton","AST4ADT,M3.2.0,M11.1.0"
"America/Monterrey","CST6"
"America/Montevideo","<-03>3"
"America/Montreal","EST5EDT,M3.2.0,M11.1.0"
"America/Montserrat","AST4"
"America/Nassau","EST5EDT,M3.2.0,M11.1.0"
"America/New_York","EST5EDT,M3.2.0,M11.1.0"
"America/Nipigon","EST5EDT,M3.2.0,M11.1.0"
"America/Nome","AKST9AKDT,M3.2.0,M11.1.0"
"America/Noronha","<-02>2"
"America/North_Dakota/Beulah","CST6CDT,M3.2.0,M11.1.0"
"America/North_Dakota/Center","CST6CDT,M3.2.0,M11.1.0"
"America/North_Dakota/New_Salem","CST6CDT,M3.2.0,M11.1.0"
"America/Nuuk","<-02>2<-01>,M3.5.0/-1,M10.5.0/0"
"America/Ojinaga","CST6CDT,M3.2.0,M11.1.0"
"America/Panama","EST5"
"America/Pangnirtung","EST5EDT,M3.2.0,M11.1.0"
"America/Paramaribo","<-03>3"
"America/Phoenix","MST7"
"America/Port-au-Prince","EST5EDT,M3.2.0,M11.1.0"
"America/Port_of_Spain","AST4"
"America/Porto_Velho","<-04>4"
"America/Puerto_Rico","AST4"
"America/Punta_Arenas","<-03>3"
"America/Rainy_River","CST6CDT,M3.2.0,M11.1.0"
"America/Rankin_Inlet","CST6CDT,M3.2.0,M11.1.0"
"America/Recife","<-03>3"
"America/Regina","CST6"
"America/Resolute","CST6CDT,M3.2.0,M11.1.0"
"America/Rio_Branco","<-05>5"
"America/Santarem","<-03>3"
"America/Santiago","<-04>4<-03>,M9.1.6/24,M4.1.6/24"
"America/Santo_Domingo","AST4"
"America/Sao_Paulo","<-03>3"
"America/Scoresbysund","<-02>2<-01>,M3.5.0/-1,M10.5.0/0"
"America/Sitka","AKST9AKDT,M3.2.0,M11.1.0"
"America/St_Barthelemy","AST4"
"America/St_Johns","NST3:30NDT,M3.2.0,M11.1.0"
"America/St_Kitts","AST4"
"America/St_Lucia","AST4"
"America/St_Thomas","AST4"
"America/St_Vincent","AST4"
"America/Swift_Current","CST6"
"America/Tegucigalpa","CST6"
"America/Thule","AST4ADT,M3.2.0,M11.1.0"
"America/Thunder_Bay","EST5EDT,M3.2.0,M11.1.0"
"America/Tijuana","PST8PDT,M3.2.0,M11.1.0"
"America/Toronto","EST5EDT,M3.2.0,M11.1.0"
"America/Tortola","AST4"
"America/Vancouver","PST8PDT,M3.2.0,M11.1.0"
"America/Whitehorse","MST7"
"America/Winnipeg","CST6CDT,M3.2.0,M11.1.0"
"America/Yakutat","AKST9AKDT,M3.2.0,M11.1.0"
"America/Yellowknife","MST7MDT,M3.2.0,M11.1.0"
"Antarctica/Casey","<+08>-8"
"Antarctica/Davis","<+07>-7"
"Antarctica/DumontDUrville","<+10>-10"
"Antarctica/Macquarie","AEST-10AEDT,M10.1.0,M4.1.0/3"
"Antarctica/Mawson","<+05>-5"
"Antarctica/McMurdo","NZST-12NZDT,M9.5.0,M4.1.0/3"
"Antarctica/Palmer","<-03>3"
"Antarctica/Rothera","<-03>3"
"Antarctica/Syowa","<+03>-3"
"Antarctica/Troll","<+00>0<+02>-2,M3.5.0/1,M10.5.0/3"
"Antarctica/Vostok","<+05>-5"
"Arctic/Longyearbyen","CET-1CEST,M3.5.0,M10.5.0/3"
"Asia/Aden","<+03>-3"
"Asia/Almaty","<+05>-5"
"Asia/Amman","<+03>-3"
"Asia/Anadyr","<+12>-12"
"Asia/Aqtau","<+05>-5"
"Asia/Aqtobe","<+05>-5"
"Asia/Ashgabat","<+05>-5"
"Asia/Atyrau","<+05>-5"
"Asia/Baghdad","<+03>-3"
"Asia/Bahrain","<+03>-3"
"Asia/Baku","<+04>-4"
"Asia/Bangkok","<+07>-7"
"Asia/Barnaul","<+07>-7"
"Asia/Beirut","EET-2EEST,M3.5.0/0,M10.5.0/0"
"Asia/Bishkek","<+06>-6"
"Asia/Brunei","<+08>-8"
"Asia/Chita","<+09>-9"
"Asia/Choibalsan","<+08>-8"
"Asia/Colombo","<+0530>-5:30"
"Asia/Damascus","<+03>-3"
"Asia/Dhaka","<+06>-6"
"Asia/Dili","<+09>-9"
"Asia/Dubai","<+04>-4"
"Asia/Dushanbe","<+05>-5"
"Asia/Famagusta","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Asia/Gaza","EET-2EEST,M3.4.4/50,M10.4.4/50"
"Asia/Hebron","EET-2EEST,M3.4.4/50,M10.4.4/50"
"Asia/Ho_Chi_Minh","<+07>-7"
"Asia/Hong_Kong","HKT-8"
"Asia/Hovd","<+07>-7"
"Asia/Irkutsk","<+08>-8"
"Asia/Jakarta","WIB-7"
"Asia/Jayapura","WIT-9"
"Asia/Jerusalem","IST-2IDT,M3.4.4/26,M10.5.0"
"Asia/Kabul","<+0430>-4:30"
"Asia/Kamchatka","<+12>-12"
"Asia/Karachi","PKT-5"
"Asia/Kathmandu","<+0545>-5:45"
"Asia/Khandyga","<+09>-9"
"Asia/Kolkata","IST-5:30"
"Asia/Krasnoyarsk","<+07>-7"
"Asia/Kuala_Lumpur","<+08>-8"
"Asia/Kuching","<+08>-8"
"Asia/Kuwait","<+03>-3"
"Asia/Macau","CST-8"
"Asia/Magadan","<+11>-11"
"Asia/Makassar","WITA-8"
"Asia/Manila","PST-8"
"Asia/Muscat","<+04>-4"
"Asia/Nicosia","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Asia/Novokuznetsk","<+07>-7"
"Asia/Novosibirsk","<+07>-7"
"Asia/Omsk","<+06>-6"
"Asia/Oral","<+05>-5"
"Asia/Phnom_Penh","<+07>-7"
"Asia/Pontianak","WIB-7"
"Asia/Pyongyang","KST-9"
"Asia/Qatar","<+03>-3"
"Asia/Qyzylorda","<+05>-5"
"Asia/Riyadh","<+03>-3"
"Asia/Sakhalin","<+11>-11"
"Asia/Samarkand","<+05>-5"
"Asia/Seoul","KST-9"
"Asia/Shanghai","CST-8"
"Asia/Singapore","<+08>-8"
"Asia/Srednekolymsk","<+11>-11"
"Asia/Taipei","CST-8"
"Asia/Tashkent","<+05>-5"
"Asia/Tbilisi","<+04>-4"
"Asia/Tehran","<+0330>-3:30"
"Asia/Thimphu","<+06>-6"
"Asia/Tokyo","JST-9"
"Asia/Tomsk","<+07>-7"
"Asia/Ulaanbaatar","<+08>-8"
"Asia/Urumqi","<+06>-6"
"Asia/Ust-Nera","<+10>-10"
"Asia/Vientiane","<+07>-7"
"Asia/Vladivostok","<+10>-10"
"Asia/Yakutsk","<+09>-9"
"Asia/Yangon","<+0630>-6:30"
"Asia/Yekaterinburg","<+05>-5"
"Asia/Yerevan","<+04>-4"
"Atlantic/Azores","<-01>1<+00>,M3.5.0/0,M10.5.0/1"
"Atlantic/Bermuda","AST4ADT,M3.2.0,M11.1.0"
"Atlantic/Canary","WET0WEST,M3.5.0/1,M10.5.0"
"Atlantic/Cape_Verde","<-01>1"
"Atlantic/Faroe","WET0WEST,M3.5.0/1,M10.5.0"
"Atlantic/Madeira","WET0WEST,M3.5.0/1,M10.5.0"
"Atlantic/Reykjavik","GMT0"
"Atlantic/South_Georgia","<-02>2"
"Atlantic/Stanley","<-03>3"
"Atlantic/St_Helena","GMT0"
"Australia/Adelaide","ACST-9:30ACDT,M10.1.0,M4.1.0/3"
"Australia/Brisbane","AEST-10"
"Australia/Broken_Hill","ACST-9:30ACDT,M10.1.0,M4.1.0/3"
"Australia/Currie","AEST-10AEDT,M10.1.0,M4.1.0/3"
"Australia/Darwin","ACST-9:30"
"Australia/Eucla","<+0845>-8:45"
"Australia/Hobart","AEST-10AEDT,M10.1.0,M4.1.0/3"
"Australia/Lindeman","AEST-10"
"Australia/Lord_Howe","<+1030>-10:30<+11>-11,M10.1.0,M4.1.0"
"Australia/Melbourne","AEST-10AEDT,M10.1.0,M4.1.0/3"
"Australia/Perth","AWST-8"
"Australia/Sydney","AEST-10AEDT,M10.1.0,M4.1.0/3"
"Europe/Amsterdam","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Andorra","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Astrakhan","<+04>-4"
"Europe/Athens","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Europe/Belgrade","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Berlin","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Bratislava","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Brussels","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Bucharest","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Europe/Budapest","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Busingen","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Chisinau","EET-2EEST,M3.5.0,M10.5.0/3"
"Europe/Copenhagen","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Dublin","IST-1GMT0,M10.5.0,M3.5.0/1"
"Europe/Gibraltar","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Guernsey","GMT0BST,M3.5.0/1,M10.5.0"
"Europe/Helsinki","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Europe/Isle_of_Man","GMT0BST,M3.5.0/1,M10.5.0"
"Europe/Istanbul","<+03>-3"
"Europe/Jersey","GMT0BST,M3.5.0/1,M10.5.0"
"Europe/Kaliningrad","EET-2"
"Europe/Kiev","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Europe/Kirov","MSK-3"
"Europe/Lisbon","WET0WEST,M3.5.0/1,M10.5.0"
"Europe/Ljubljana","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/London","GMT0BST,M3.5.0/1,M10.5.0"
"Europe/Luxembourg","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Madrid","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Malta","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Mariehamn","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Europe/Minsk","<+03>-3"
"Europe/Monaco","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Moscow","MSK-3"
"Europe/Oslo","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Paris","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Podgorica","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Prague","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Riga","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Europe/Rome","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Samara","<+04>-4"
"Europe/San_Marino","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Sarajevo","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Saratov","<+04>-4"
"Europe/Simferopol","MSK-3"
"Europe/Skopje","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Sofia","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Europe/Stockholm","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Tallinn","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Europe/Tirane","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Ulyanovsk","<+04>-4"
"Europe/Uzhgorod","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Europe/Vaduz","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Vatican","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Vienna","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Vilnius","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Europe/Volgograd","MSK-3"
"Europe/Warsaw","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Zagreb","CET-1CEST,M3.5.0,M10.5.0/3"
"Europe/Zaporozhye","EET-2EEST,M3.5.0/3,M10.5.0/4"
"Europe/Zurich","CET-1CEST,M3.5.0,M10.5.0/3"
"Indian/Antananarivo","EAT-3"
"Indian/Chagos","<+06>-6"
"Indian/Christmas","<+07>-7"
"Indian/Cocos","<+0630>-6:30"
"Indian/Comoro","EAT-3"
"Indian/Kerguelen","<+05>-5"
"Indian/Mahe","<+04>-4"
"Indian/Maldives","<+05>-5"
"Indian/Mauritius","<+04>-4"
"Indian/Mayotte","EAT-3"
"Indian/Reunion","<+04>-4"
"Pacific/Apia","<+13>-13"
"Pacific/Auckland","NZST-12NZDT,M9.5.0,M4.1.0/3"
"Pacific/Bougainville","<+11>-11"
"Pacific/Chatham","<+1245>-12:45<+1345>,M9.5.0/2:45,M4.1.0/3:45"
"Pacific/Chuuk","<+10>-10"
"Pacific/Easter","<-06>6<-05>,M9.1.6/22,M4.1.6/22"
"Pacific/Efate","<+11>-11"
"Pacific/Enderbury","<+13>-13"
"Pacific/Fakaofo","<+13>-13"
"Pacific/Fiji","<+12>-12"
"Pacific/Funafuti","<+12>-12"
"Pacific/Galapagos","<-06>6"
"Pacific/Gambier","<-09>9"
"Pacific/Guadalcanal","<+11>-11"
"Pacific/Guam","ChST-10"
"Pacific/Honolulu","HST10"
"Pacific/Kiritimati","<+14>-14"
"Pacific/Kosrae","<+11>-11"
"Pacific/Kwajalein","<+12>-12"
"Pacific/Majuro","<+12>-12"
"Pacific/Marquesas","<-0930>9:30"
"Pacific/Midway","SST11"
"Pacific/Nauru","<+12>-12"
"Pacific/Niue","<-11>11"
"Pacific/Norfolk","<+11>-11<+12>,M10.1.0,M4.1.0/3"
"Pacific/Noumea","<+11>-11"
"Pacific/Pago_Pago","SST11"
"Pacific/Palau","<+09>-9"
"Pacific/Pitcairn","<-08>8"
"Pacific/Pohnpei","<+11>-11"
"Pacific/Port_Moresby","<+10>-10"
"Pacific/Rarotonga","<-10>10"
"Pacific/Saipan","ChST-10"
"Pacific/Tahiti","<-10>10"
"Pacific/Tarawa","<+12>-12"
"Pacific/Tongatapu","<+13>-13"
"Pacific/Wake","<+12>-12"
"Pacific/Wallis","<+12>-12"
"Etc/GMT","GMT0"
"Etc/GMT-0","GMT0"
"Etc/GMT-1","<+01>-1"
"Etc/GMT-2","<+02>-2"
"Etc/GMT-3","<+03>-3"
"Etc/GMT-4","<+04>-4"
"Etc/GMT-5","<+05>-5"
"Etc/GMT-6","<+06>-6"
"Etc/GMT-7","<+07>-7"
"Etc/GMT-8","<+08>-8"
"Etc/GMT-9","<+09>-9"
"Etc/GMT-10","<+10>-10"
"Etc/GMT-11","<+11>-11"
"Etc/GMT-12","<+12>-12"
"Etc/GMT-13","<+13>-13"
"Etc/GMT-14","<+14>-14"
"Etc/GMT0","GMT0"
"Etc/GMT+0","GMT0"
"Etc/GMT+1","<-01>1"
"Etc/GMT+2","<-02>2"
"Etc/GMT+3","<-03>3"
"Etc/GMT+4","<-04>4"
"Etc/GMT+5","<-05>5"
"Etc/GMT+6","<-06>6"
"Etc/GMT+7","<-07>7"
"Etc/GMT+8","<-08>8"
"Etc/GMT+9","<-09>9"
"Etc/GMT+10","<-10>10"
"Etc/GMT+11","<-11>11"
"Etc/GMT+12","<-12>12"
"Etc/UCT","UTC0"
"Etc/UTC","UTC0"
"Etc/Greenwich","GMT0"
"Etc/Universal","UTC0"
"Etc/Zulu","UTC0"


================================================
FILE: zones.json
================================================
{
"Africa/Abidjan":"GMT0",
"Africa/Accra":"GMT0",
"Africa/Addis_Ababa":"EAT-3",
"Africa/Algiers":"CET-1",
"Africa/Asmara":"EAT-3",
"Africa/Bamako":"GMT0",
"Africa/Bangui":"WAT-1",
"Africa/Banjul":"GMT0",
"Africa/Bissau":"GMT0",
"Africa/Blantyre":"CAT-2",
"Africa/Brazzaville":"WAT-1",
"Africa/Bujumbura":"CAT-2",
"Africa/Cairo":"EET-2EEST,M4.5.5/0,M10.5.4/24",
"Africa/Casablanca":"<+01>-1",
"Africa/Ceuta":"CET-1CEST,M3.5.0,M10.5.0/3",
"Africa/Conakry":"GMT0",
"Africa/Dakar":"GMT0",
"Africa/Dar_es_Salaam":"EAT-3",
"Africa/Djibouti":"EAT-3",
"Africa/Douala":"WAT-1",
"Africa/El_Aaiun":"<+01>-1",
"Africa/Freetown":"GMT0",
"Africa/Gaborone":"CAT-2",
"Africa/Harare":"CAT-2",
"Africa/Johannesburg":"SAST-2",
"Africa/Juba":"CAT-2",
"Africa/Kampala":"EAT-3",
"Africa/Khartoum":"CAT-2",
"Africa/Kigali":"CAT-2",
"Africa/Kinshasa":"WAT-1",
"Africa/Lagos":"WAT-1",
"Africa/Libreville":"WAT-1",
"Africa/Lome":"GMT0",
"Africa/Luanda":"WAT-1",
"Africa/Lubumbashi":"CAT-2",
"Africa/Lusaka":"CAT-2",
"Africa/Malabo":"WAT-1",
"Africa/Maputo":"CAT-2",
"Africa/Maseru":"SAST-2",
"Africa/Mbabane":"SAST-2",
"Africa/Mogadishu":"EAT-3",
"Africa/Monrovia":"GMT0",
"Africa/Nairobi":"EAT-3",
"Africa/Ndjamena":"WAT-1",
"Africa/Niamey":"WAT-1",
"Africa/Nouakchott":"GMT0",
"Africa/Ouagadougou":"GMT0",
"Africa/Porto-Novo":"WAT-1",
"Africa/Sao_Tome":"GMT0",
"Africa/Tripoli":"EET-2",
"Africa/Tunis":"CET-1",
"Africa/Windhoek":"CAT-2",
"America/Adak":"HST10HDT,M3.2.0,M11.1.0",
"America/Anchorage":"AKST9AKDT,M3.2.0,M11.1.0",
"America/Anguilla":"AST4",
"America/Antigua":"AST4",
"America/Araguaina":"<-03>3",
"America/Argentina/Buenos_Aires":"<-03>3",
"America/Argentina/Catamarca":"<-03>3",
"America/Argentina/Cordoba":"<-03>3",
"America/Argentina/Jujuy":"<-03>3",
"America/Argentina/La_Rioja":"<-03>3",
"America/Argentina/Mendoza":"<-03>3",
"America/Argentina/Rio_Gallegos":"<-03>3",
"America/Argentina/Salta":"<-03>3",
"America/Argentina/San_Juan":"<-03>3",
"America/Argentina/San_Luis":"<-03>3",
"America/Argentina/Tucuman":"<-03>3",
"America/Argentina/Ushuaia":"<-03>3",
"America/Aruba":"AST4",
"America/Asuncion":"<-03>3",
"America/Atikokan":"EST5",
"America/Bahia":"<-03>3",
"America/Bahia_Banderas":"CST6",
"America/Barbados":"AST4",
"America/Belem":"<-03>3",
"America/Belize":"CST6",
"America/Blanc-Sablon":"AST4",
"America/Boa_Vista":"<-04>4",
"America/Bogota":"<-05>5",
"America/Boise":"MST7MDT,M3.2.0,M11.1.0",
"America/Cambridge_Bay":"MST7MDT,M3.2.0,M11.1.0",
"America/Campo_Grande":"<-04>4",
"America/Cancun":"EST5",
"America/Caracas":"<-04>4",
"America/Cayenne":"<-03>3",
"America/Cayman":"EST5",
"America/Chicago":"CST6CDT,M3.2.0,M11.1.0",
"America/Chihuahua":"CST6",
"America/Costa_Rica":"CST6",
"America/Creston":"MST7",
"America/Cuiaba":"<-04>4",
"America/Curacao":"AST4",
"America/Danmarkshavn":"GMT0",
"America/Dawson":"MST7",
"America/Dawson_Creek":"MST7",
"America/Denver":"MST7MDT,M3.2.0,M11.1.0",
"America/Detroit":"EST5EDT,M3.2.0,M11.1.0",
"America/Dominica":"AST4",
"America/Edmonton":"MST7MDT,M3.2.0,M11.1.0",
"America/Eirunepe":"<-05>5",
"America/El_Salvador":"CST6",
"America/Fort_Nelson":"MST7",
"America/Fortaleza":"<-03>3",
"America/Glace_Bay":"AST4ADT,M3.2.0,M11.1.0",
"America/Godthab":"<-02>2<-01>,M3.5.0/-1,M10.5.0/0",
"America/Goose_Bay":"AST4ADT,M3.2.0,M11.1.0",
"America/Grand_Turk":"EST5EDT,M3.2.0,M11.1.0",
"America/Grenada":"AST4",
"America/Guadeloupe":"AST4",
"America/Guatemala":"CST6",
"America/Guayaquil":"<-05>5",
"America/Guyana":"<-04>4",
"America/Halifax":"AST4ADT,M3.2.0,M11.1.0",
"America/Havana":"CST5CDT,M3.2.0/0,M11.1.0/1",
"America/Hermosillo":"MST7",
"America/Indiana/Indianapolis":"EST5EDT,M3.2.0,M11.1.0",
"America/Indiana/Knox":"CST6CDT,M3.2.0,M11.1.0",
"America/Indiana/Marengo":"EST5EDT,M3.2.0,M11.1.0",
"America/Indiana/Petersburg":"EST5EDT,M3.2.0,M11.1.0",
"America/Indiana/Tell_City":"CST6CDT,M3.2.0,M11.1.0",
"America/Indiana/Vevay":"EST5EDT,M3.2.0,M11.1.0",
"America/Indiana/Vincennes":"EST5EDT,M3.2.0,M11.1.0",
"America/Indiana/Winamac":"EST5EDT,M3.2.0,M11.1.0",
"America/Inuvik":"MST7MDT,M3.2.0,M11.1.0",
"America/Iqaluit":"EST5EDT,M3.2.0,M11.1.0",
"America/Jamaica":"EST5",
"America/Juneau":"AKST9AKDT,M3.2.0,M11.1.0",
"America/Kentucky/Louisville":"EST5EDT,M3.2.0,M11.1.0",
"America/Kentucky/Monticello":"EST5EDT,M3.2.0,M11.1.0",
"America/Kralendijk":"AST4",
"America/La_Paz":"<-04>4",
"America/Lima":"<-05>5",
"America/Los_Angeles":"PST8PDT,M3.2.0,M11.1.0",
"America/Lower_Princes":"AST4",
"America/Maceio":"<-03>3",
"America/Managua":"CST6",
"America/Manaus":"<-04>4",
"America/Marigot":"AST4",
"America/Martinique":"AST4",
"America/Matamoros":"CST6CDT,M3.2.0,M11.1.0",
"America/Mazatlan":"MST7",
"America/Menominee":"CST6CDT,M3.2.0,M11.1.0",
"America/Merida":"CST6",
"America/Metlakatla":"AKST9AKDT,M3.2.0,M11.1.0",
"America/Mexico_City":"CST6",
"America/Miquelon":"<-03>3<-02>,M3.2.0,M11.1.0",
"America/Moncton":"AST4ADT,M3.2.0,M11.1.0",
"America/Monterrey":"CST6",
"America/Montevideo":"<-03>3",
"America/Montreal":"EST5EDT,M3.2.0,M11.1.0",
"America/Montserrat":"AST4",
"America/Nassau":"EST5EDT,M3.2.0,M11.1.0",
"America/New_York":"EST5EDT,M3.2.0,M11.1.0",
"America/Nipigon":"EST5EDT,M3.2.0,M11.1.0",
"America/Nome":"AKST9AKDT,M3.2.0,M11.1.0",
"America/Noronha":"<-02>2",
"America/North_Dakota/Beulah":"CST6CDT,M3.2.0,M11.1.0",
"America/North_Dakota/Center":"CST6CDT,M3.2.0,M11.1.0",
"America/North_Dakota/New_Salem":"CST6CDT,M3.2.0,M11.1.0",
"America/Nuuk":"<-02>2<-01>,M3.5.0/-1,M10.5.0/0",
"America/Ojinaga":"CST6CDT,M3.2.0,M11.1.0",
"America/Panama":"EST5",
"America/Pangnirtung":"EST5EDT,M3.2.0,M11.1.0",
"America/Paramaribo":"<-03>3",
"America/Phoenix":"MST7",
"America/Port-au-Prince":"EST5EDT,M3.2.0,M11.1.0",
"America/Port_of_Spain":"AST4",
"America/Porto_Velho":"<-04>4",
"America/Puerto_Rico":"AST4",
"America/Punta_Arenas":"<-03>3",
"America/Rainy_River":"CST6CDT,M3.2.0,M11.1.0",
"America/Rankin_Inlet":"CST6CDT,M3.2.0,M11.1.0",
"America/Recife":"<-03>3",
"America/Regina":"CST6",
"America/Resolute":"CST6CDT,M3.2.0,M11.1.0",
"America/Rio_Branco":"<-05>5",
"America/Santarem":"<-03>3",
"America/Santiago":"<-04>4<-03>,M9.1.6/24,M4.1.6/24",
"America/Santo_Domingo":"AST4",
"America/Sao_Paulo":"<-03>3",
"America/Scoresbysund":"<-02>2<-01>,M3.5.0/-1,M10.5.0/0",
"America/Sitka":"AKST9AKDT,M3.2.0,M11.1.0",
"America/St_Barthelemy":"AST4",
"America/St_Johns":"NST3:30NDT,M3.2.0,M11.1.0",
"America/St_Kitts":"AST4",
"America/St_Lucia":"AST4",
"America/St_Thomas":"AST4",
"America/St_Vincent":"AST4",
"America/Swift_Current":"CST6",
"America/Tegucigalpa":"CST6",
"America/Thule":"AST4ADT,M3.2.0,M11.1.0",
"America/Thunder_Bay":"EST5EDT,M3.2.0,M11.1.0",
"America/Tijuana":"PST8PDT,M3.2.0,M11.1.0",
"America/Toronto":"EST5EDT,M3.2.0,M11.1.0",
"America/Tortola":"AST4",
"America/Vancouver":"PST8PDT,M3.2.0,M11.1.0",
"America/Whitehorse":"MST7",
"America/Winnipeg":"CST6CDT,M3.2.0,M11.1.0",
"America/Yakutat":"AKST9AKDT,M3.2.0,M11.1.0",
"America/Yellowknife":"MST7MDT,M3.2.0,M11.1.0",
"Antarctica/Casey":"<+08>-8",
"Antarctica/Davis":"<+07>-7",
"Antarctica/DumontDUrville":"<+10>-10",
"Antarctica/Macquarie":"AEST-10AEDT,M10.1.0,M4.1.0/3",
"Antarctica/Mawson":"<+05>-5",
"Antarctica/McMurdo":"NZST-12NZDT,M9.5.0,M4.1.0/3",
"Antarctica/Palmer":"<-03>3",
"Antarctica/Rothera":"<-03>3",
"Antarctica/Syowa":"<+03>-3",
"Antarctica/Troll":"<+00>0<+02>-2,M3.5.0/1,M10.5.0/3",
"Antarctica/Vostok":"<+05>-5",
"Arctic/Longyearbyen":"CET-1CEST,M3.5.0,M10.5.0/3",
"Asia/Aden":"<+03>-3",
"Asia/Almaty":"<+05>-5",
"Asia/Amman":"<+03>-3",
"Asia/Anadyr":"<+12>-12",
"Asia/Aqtau":"<+05>-5",
"Asia/Aqtobe":"<+05>-5",
"Asia/Ashgabat":"<+05>-5",
"Asia/Atyrau":"<+05>-5",
"Asia/Baghdad":"<+03>-3",
"Asia/Bahrain":"<+03>-3",
"Asia/Baku":"<+04>-4",
"Asia/Bangkok":"<+07>-7",
"Asia/Barnaul":"<+07>-7",
"Asia/Beirut":"EET-2EEST,M3.5.0/0,M10.5.0/0",
"Asia/Bishkek":"<+06>-6",
"Asia/Brunei":"<+08>-8",
"Asia/Chita":"<+09>-9",
"Asia/Choibalsan":"<+08>-8",
"Asia/Colombo":"<+0530>-5:30",
"Asia/Damascus":"<+03>-3",
"Asia/Dhaka":"<+06>-6",
"Asia/Dili":"<+09>-9",
"Asia/Dubai":"<+04>-4",
"Asia/Dushanbe":"<+05>-5",
"Asia/Famagusta":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Asia/Gaza":"EET-2EEST,M3.4.4/50,M10.4.4/50",
"Asia/Hebron":"EET-2EEST,M3.4.4/50,M10.4.4/50",
"Asia/Ho_Chi_Minh":"<+07>-7",
"Asia/Hong_Kong":"HKT-8",
"Asia/Hovd":"<+07>-7",
"Asia/Irkutsk":"<+08>-8",
"Asia/Jakarta":"WIB-7",
"Asia/Jayapura":"WIT-9",
"Asia/Jerusalem":"IST-2IDT,M3.4.4/26,M10.5.0",
"Asia/Kabul":"<+0430>-4:30",
"Asia/Kamchatka":"<+12>-12",
"Asia/Karachi":"PKT-5",
"Asia/Kathmandu":"<+0545>-5:45",
"Asia/Khandyga":"<+09>-9",
"Asia/Kolkata":"IST-5:30",
"Asia/Krasnoyarsk":"<+07>-7",
"Asia/Kuala_Lumpur":"<+08>-8",
"Asia/Kuching":"<+08>-8",
"Asia/Kuwait":"<+03>-3",
"Asia/Macau":"CST-8",
"Asia/Magadan":"<+11>-11",
"Asia/Makassar":"WITA-8",
"Asia/Manila":"PST-8",
"Asia/Muscat":"<+04>-4",
"Asia/Nicosia":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Asia/Novokuznetsk":"<+07>-7",
"Asia/Novosibirsk":"<+07>-7",
"Asia/Omsk":"<+06>-6",
"Asia/Oral":"<+05>-5",
"Asia/Phnom_Penh":"<+07>-7",
"Asia/Pontianak":"WIB-7",
"Asia/Pyongyang":"KST-9",
"Asia/Qatar":"<+03>-3",
"Asia/Qyzylorda":"<+05>-5",
"Asia/Riyadh":"<+03>-3",
"Asia/Sakhalin":"<+11>-11",
"Asia/Samarkand":"<+05>-5",
"Asia/Seoul":"KST-9",
"Asia/Shanghai":"CST-8",
"Asia/Singapore":"<+08>-8",
"Asia/Srednekolymsk":"<+11>-11",
"Asia/Taipei":"CST-8",
"Asia/Tashkent":"<+05>-5",
"Asia/Tbilisi":"<+04>-4",
"Asia/Tehran":"<+0330>-3:30",
"Asia/Thimphu":"<+06>-6",
"Asia/Tokyo":"JST-9",
"Asia/Tomsk":"<+07>-7",
"Asia/Ulaanbaatar":"<+08>-8",
"Asia/Urumqi":"<+06>-6",
"Asia/Ust-Nera":"<+10>-10",
"Asia/Vientiane":"<+07>-7",
"Asia/Vladivostok":"<+10>-10",
"Asia/Yakutsk":"<+09>-9",
"Asia/Yangon":"<+0630>-6:30",
"Asia/Yekaterinburg":"<+05>-5",
"Asia/Yerevan":"<+04>-4",
"Atlantic/Azores":"<-01>1<+00>,M3.5.0/0,M10.5.0/1",
"Atlantic/Bermuda":"AST4ADT,M3.2.0,M11.1.0",
"Atlantic/Canary":"WET0WEST,M3.5.0/1,M10.5.0",
"Atlantic/Cape_Verde":"<-01>1",
"Atlantic/Faroe":"WET0WEST,M3.5.0/1,M10.5.0",
"Atlantic/Madeira":"WET0WEST,M3.5.0/1,M10.5.0",
"Atlantic/Reykjavik":"GMT0",
"Atlantic/South_Georgia":"<-02>2",
"Atlantic/St_Helena":"GMT0",
"Atlantic/Stanley":"<-03>3",
"Australia/Adelaide":"ACST-9:30ACDT,M10.1.0,M4.1.0/3",
"Australia/Brisbane":"AEST-10",
"Australia/Broken_Hill":"ACST-9:30ACDT,M10.1.0,M4.1.0/3",
"Australia/Currie":"AEST-10AEDT,M10.1.0,M4.1.0/3",
"Australia/Darwin":"ACST-9:30",
"Australia/Eucla":"<+0845>-8:45",
"Australia/Hobart":"AEST-10AEDT,M10.1.0,M4.1.0/3",
"Australia/Lindeman":"AEST-10",
"Australia/Lord_Howe":"<+1030>-10:30<+11>-11,M10.1.0,M4.1.0",
"Australia/Melbourne":"AEST-10AEDT,M10.1.0,M4.1.0/3",
"Australia/Perth":"AWST-8",
"Australia/Sydney":"AEST-10AEDT,M10.1.0,M4.1.0/3",
"Etc/GMT":"GMT0",
"Etc/GMT+0":"GMT0",
"Etc/GMT+1":"<-01>1",
"Etc/GMT+10":"<-10>10",
"Etc/GMT+11":"<-11>11",
"Etc/GMT+12":"<-12>12",
"Etc/GMT+2":"<-02>2",
"Etc/GMT+3":"<-03>3",
"Etc/GMT+4":"<-04>4",
"Etc/GMT+5":"<-05>5",
"Etc/GMT+6":"<-06>6",
"Etc/GMT+7":"<-07>7",
"Etc/GMT+8":"<-08>8",
"Etc/GMT+9":"<-09>9",
"Etc/GMT-0":"GMT0",
"Etc/GMT-1":"<+01>-1",
"Etc/GMT-10":"<+10>-10",
"Etc/GMT-11":"<+11>-11",
"Etc/GMT-12":"<+12>-12",
"Etc/GMT-13":"<+13>-13",
"Etc/GMT-14":"<+14>-14",
"Etc/GMT-2":"<+02>-2",
"Etc/GMT-3":"<+03>-3",
"Etc/GMT-4":"<+04>-4",
"Etc/GMT-5":"<+05>-5",
"Etc/GMT-6":"<+06>-6",
"Etc/GMT-7":"<+07>-7",
"Etc/GMT-8":"<+08>-8",
"Etc/GMT-9":"<+09>-9",
"Etc/GMT0":"GMT0",
"Etc/Greenwich":"GMT0",
"Etc/UCT":"UTC0",
"Etc/UTC":"UTC0",
"Etc/Universal":"UTC0",
"Etc/Zulu":"UTC0",
"Europe/Amsterdam":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Andorra":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Astrakhan":"<+04>-4",
"Europe/Athens":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Europe/Belgrade":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Berlin":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Bratislava":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Brussels":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Bucharest":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Europe/Budapest":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Busingen":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Chisinau":"EET-2EEST,M3.5.0,M10.5.0/3",
"Europe/Copenhagen":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Dublin":"IST-1GMT0,M10.5.0,M3.5.0/1",
"Europe/Gibraltar":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Guernsey":"GMT0BST,M3.5.0/1,M10.5.0",
"Europe/Helsinki":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Europe/Isle_of_Man":"GMT0BST,M3.5.0/1,M10.5.0",
"Europe/Istanbul":"<+03>-3",
"Europe/Jersey":"GMT0BST,M3.5.0/1,M10.5.0",
"Europe/Kaliningrad":"EET-2",
"Europe/Kiev":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Europe/Kirov":"MSK-3",
"Europe/Lisbon":"WET0WEST,M3.5.0/1,M10.5.0",
"Europe/Ljubljana":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/London":"GMT0BST,M3.5.0/1,M10.5.0",
"Europe/Luxembourg":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Madrid":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Malta":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Mariehamn":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Europe/Minsk":"<+03>-3",
"Europe/Monaco":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Moscow":"MSK-3",
"Europe/Oslo":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Paris":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Podgorica":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Prague":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Riga":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Europe/Rome":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Samara":"<+04>-4",
"Europe/San_Marino":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Sarajevo":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Saratov":"<+04>-4",
"Europe/Simferopol":"MSK-3",
"Europe/Skopje":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Sofia":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Europe/Stockholm":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Tallinn":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Europe/Tirane":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Ulyanovsk":"<+04>-4",
"Europe/Uzhgorod":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Europe/Vaduz":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Vatican":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Vienna":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Vilnius":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Europe/Volgograd":"MSK-3",
"Europe/Warsaw":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Zagreb":"CET-1CEST,M3.5.0,M10.5.0/3",
"Europe/Zaporozhye":"EET-2EEST,M3.5.0/3,M10.5.0/4",
"Europe/Zurich":"CET-1CEST,M3.5.0,M10.5.0/3",
"Indian/Antananarivo":"EAT-3",
"Indian/Chagos":"<+06>-6",
"Indian/Christmas":"<+07>-7",
"Indian/Cocos":"<+0630>-6:30",
"Indian/Comoro":"EAT-3",
"Indian/Kerguelen":"<+05>-5",
"Indian/Mahe":"<+04>-4",
"Indian/Maldives":"<+05>-5",
"Indian/Mauritius":"<+04>-4",
"Indian/Mayotte":"EAT-3",
"Indian/Reunion":"<+04>-4",
"Pacific/Apia":"<+13>-13",
"Pacific/Auckland":"NZST-12NZDT,M9.5.0,M4.1.0/3",
"Pacific/Bougainville":"<+11>-11",
"Pacific/Chatham":"<+1245>-12:45<+1345>,M9.5.0/2:45,M4.1.0/3:45",
"Pacific/Chuuk":"<+10>-10",
"Pacific/Easter":"<-06>6<-05>,M9.1.6/22,M4.1.6/22",
"Pacific/Efate":"<+11>-11",
"Pacific/Enderbury":"<+13>-13",
"Pacific/Fakaofo":"<+13>-13",
"Pacific/Fiji":"<+12>-12",
"Pacific/Funafuti":"<+12>-12",
"Pacific/Galapagos":"<-06>6",
"Pacific/Gambier":"<-09>9",
"Pacific/Guadalcanal":"<+11>-11",
"Pacific/Guam":"ChST-10",
"Pacific/Honolulu":"HST10",
"Pacific/Kiritimati":"<+14>-14",
"Pacific/Kosrae":"<+11>-11",
"Pacific/Kwajalein":"<+12>-12",
"Pacific/Majuro":"<+12>-12",
"Pacific/Marquesas":"<-0930>9:30",
"Pacific/Midway":"SST11",
"Pacific/Nauru":"<+12>-12",
"Pacific/Niue":"<-11>11",
"Pacific/Norfolk":"<+11>-11<+12>,M10.1.0,M4.1.0/3",
"Pacific/Noumea":"<+11>-11",
"Pacific/Pago_Pago":"SST11",
"Pacific/Palau":"<+09>-9",
"Pacific/Pitcairn":"<-08>8",
"Pacific/Pohnpei":"<+11>-11",
"Pacific/Port_Moresby":"<+10>-10",
"Pacific/Rarotonga":"<-10>10",
"Pacific/Saipan":"ChST-10",
"Pacific/Tahiti":"<-10>10",
"Pacific/Tarawa":"<+12>-12",
"Pacific/Tongatapu":"<+13>-13",
"Pacific/Wake":"<+12>-12",
"Pacific/Wallis":"<+12>-12"
}
Download .txt
gitextract_yo6jj1ip/

├── .gitignore
├── LICENSE
├── README.md
├── gen-tz.py
├── zones.csv
└── zones.json
Download .txt
SYMBOL INDEX (4 symbols across 1 files)

FILE: gen-tz.py
  function get_tz_string (line 473) | def get_tz_string(timezone):
  function make_timezones_dict (line 478) | def make_timezones_dict():
  function print_csv (line 486) | def print_csv(timezones_dict):
  function print_json (line 491) | def print_json(timezones_dict):
Condensed preview — 6 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (51K chars).
[
  {
    "path": ".gitignore",
    "chars": 9,
    "preview": "CLAUDE.md"
  },
  {
    "path": "LICENSE",
    "chars": 1068,
    "preview": "MIT License\n\nCopyright (c) [year] [fullname]\n\nPermission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "README.md",
    "chars": 1451,
    "preview": "# POSIX Timezone Database Generator\n\nA simple Python tool that generates POSIX timezone strings from system timezone dat"
  },
  {
    "path": "gen-tz.py",
    "chars": 11807,
    "preview": "#!/usr/bin/env python\n\nimport sys\nimport argparse\nimport json\n\nZONES_DIR = \"/usr/share/zoneinfo/\"\nZONES = [\n    \"Africa/"
  },
  {
    "path": "zones.csv",
    "chars": 15118,
    "preview": "\"Africa/Abidjan\",\"GMT0\"\n\"Africa/Accra\",\"GMT0\"\n\"Africa/Addis_Ababa\",\"EAT-3\"\n\"Africa/Algiers\",\"CET-1\"\n\"Africa/Asmara\",\"EAT"
  },
  {
    "path": "zones.json",
    "chars": 15581,
    "preview": "{\n\"Africa/Abidjan\":\"GMT0\",\n\"Africa/Accra\":\"GMT0\",\n\"Africa/Addis_Ababa\":\"EAT-3\",\n\"Africa/Algiers\":\"CET-1\",\n\"Africa/Asmara"
  }
]

About this extraction

This page contains the full source code of the nayarsystems/posix_tz_db GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 6 files (44.0 KB), approximately 19.5k tokens, and a symbol index with 4 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!