[tz] Reason for removal of several TZ abbreviations

Michael Douglass mikeadouglass at gmail.com
Tue Dec 5 00:21:04 UTC 2017


With a mapping table it doesn't matter what the id is. In fact any 
scheme for producing an id that is reversible or ordered in any way will 
lead to people using that then complaining down the road if you do 
something that "breaks" their code.

I'd suggest writing a small routine to create an 8 character random 
base64 id and get a new random id for each new zone. (I'd suggest a uuid 
but they're bulky).

Then create a legacy-mappings.txt file to map all the current names and 
aliases on to the new id - then we're sort of done.

I'd suggest a simple increasing sequence but you can guarantee that 
somebody would use it as an index even if told not to.

Then we can stop having these long arguments about why one name or 
another isn't in the tz data. Everybody is free to generate their own 
list if they so wish.


On 12/4/17 19:05, J Andrew Lipscomb wrote:
>> Le 4 déc. 2017 à 18:18, Michael Douglass <mikeadouglass at gmail.com> a écrit :
>> Exactly - that's why I said opaque
> I just came up with a system I think is opaque enough while still maintaining a bit of useful information in the id:
> First up, it goes with the letter-digit-letter format.
>
> The first letter represents the (lower) GMT offset of the zone in military format.
> (This represents the one real flaw I see: a zone’s proper letter can change if it adopts something on the order of year-round daylight savings time.)
>
> The digit is usually 0. It changes in the following cases:
> 3 would indicate a +:15 zone if there were any, 5 is a +:30 zone, and 8 is a +:45 zone.
> 1 is used with M (normally +12) to indicate +13, and M2 similarly indicates +14.
> 1 is also used with other letters when the 0 range overflows.
>
> The second letter is meaningless UNLESS it is Z. Z indicates a non-geographic time zone (the Etc/ series of indicators).
>
> The list I just randomized, presented in order of newID:
>
> Africa/Ndjamena	a0a
> Africa/Tunis	a0b
> Europe/Gibraltar	a0c
> Europe/Monaco	a0d
> Europe/Oslo	a0e
> Europe/Warsaw	a0f
> Europe/Zurich	a0g
> Europe/Madrid	a0h
> Europe/Copenhagen	a0i
> Europe/Brussels	a0j
> Europe/Malta	a0k
> Europe/Andorra	a0l
> Africa/Algiers	a0m
> Europe/Paris	a0n
> Europe/Amsterdam	a0o
> Europe/Luxembourg	a0p
> Africa/Ceuta	a0q
> Europe/Tirane	a0r
> Europe/Vienna	a0s
> Europe/Belgrade	a0t
> Europe/Budapest	a0u
> Europe/Prague	a0v
> Europe/Rome	a0w
> Africa/Lagos	a0x
> Europe/Stockholm	a0y
> Etc/GMT-1	a0z
> Asia/Beirut	b0a
> Europe/Bucharest	b0b
> Europe/Riga	b0c
> Africa/Khartoum	b0d
> Asia/Damascus	b0e
> Africa/Windhoek	b0f
> Europe/Tallinn	b0g
> Asia/Hebron	b0h
> Africa/Maputo	b0i
> Europe/Athens	b0j
> Europe/Kiev	b0k
> Europe/Sofia	b0l
> Africa/Johannesburg	b0m
> Europe/Chisinau	b0n
> Europe/Zaporozhye	b0o
> Asia/Famagusta	b0p
> Asia/Nicosia	b0q
> Africa/Tripoli	b0r
> Europe/Uzhgorod	b0s
> Asia/Jerusalem	b0t
> Africa/Cairo	b0u
> Asia/Amman	b0v
> Asia/Gaza	b0w
> Europe/Helsinki	b0x
> Europe/Kaliningrad	b0y
> Etc/GMT-2	b0z
> Europe/Vilnius	b1a
> Europe/Minsk	c0a
> Europe/Kirov	c0b
> Africa/Nairobi	c0c
> Antarctica/Syowa	c0d
> Asia/Baghdad	c0e
> Asia/Riyadh	c0f
> Asia/Qatar	c0g
> Europe/Istanbul	c0h
> Africa/Juba	c0i
> Europe/Moscow	c0j
> Europe/Volgograd	c0k
> Etc/GMT-3	c0z
> Asia/Tehran	c5a
> Asia/Tbilisi	d0a
> Europe/Saratov	d0b
> Asia/Dubai	d0c
> Europe/Samara	d0d
> Indian/Reunion	d0e
> Europe/Astrakhan	d0f
> Indian/Mahe	d0g
> Asia/Baku	d0h
> Europe/Ulyanovsk	d0i
> Asia/Yerevan	d0j
> Indian/Mauritius	d0k
> Etc/GMT-4	d0z
> Asia/Kabul	d5a
> Asia/Samarkand	e0a
> Asia/Aqtobe	e0b
> Asia/Oral	e0c
> Asia/Dushanbe	e0d
> Asia/Karachi	e0e
> Asia/Aqtau	e0f
> Indian/Kerguelen	e0g
> Asia/Yekaterinburg	e0h
> Asia/Ashgabat	e0i
> Asia/Tashkent	e0j
> Antarctica/Mawson	e0k
> Asia/Atyrau	e0l
> Indian/Maldives	e0m
> Etc/GMT-5	e0z
> Asia/Colombo	e5a
> Asia/Kathmandu	e8a
> Asia/Omsk	f0a
> Asia/Dhaka	f0b
> Antarctica/Vostok	f0c
> Asia/Bishkek	f0d
> Asia/Almaty	f0e
> Asia/Thimphu	f0f
> Asia/Urumqi	f0g
> Asia/Qyzylorda	f0h
> Indian/Chagos	f0i
> Etc/GMT-6	f0z
> Asia/Yangon	f5a
> Indian/Cocos	f5b
> Asia/Pontianak	g0a
> Asia/Tomsk	g0b
> Asia/Bangkok	g0c
> Asia/Hovd	g0d
> Asia/Novokuznetsk	g0e
> Asia/Jakarta	g0f
> Asia/Krasnoyarsk	g0g
> Antarctica/Davis	g0h
> Asia/Barnaul	g0i
> Asia/Novosibirsk	g0j
> Indian/Christmas	g0k
> Asia/Ho_Chi_Minh	g0l
> Etc/GMT-7	g0z
> Asia/Singapore	h0a
> Asia/Taipei	h0b
> Asia/Makassar	h0c
> Asia/Brunei	h0d
> Asia/Kuching	h0e
> Asia/Ulaanbaatar	h0f
> Asia/Kuala_Lumpur	h0g
> Asia/Choibalsan	h0h
> Asia/Shanghai	h0i
> Asia/Macau	h0j
> Asia/Irkutsk	h0k
> Asia/Hong_Kong	h0l
> Asia/Manila	h0m
> Australia/Perth	h0n
> Etc/GMT-8	h0z
> Asia/Pyongyang	h5a
> Australia/Eucla	h8a
> Pacific/Palau	i0a
> Asia/Khandyga	i0b
> Asia/Seoul	i0c
> Asia/Yakutsk	i0d
> Asia/Dili	i0e
> Asia/Chita	i0f
> Asia/Jayapura	i0g
> Asia/Tokyo	i0h
> Etc/GMT-9	i0z
> Australia/Adelaide	i5a
> Australia/Darwin	i5b
> Australia/Broken_Hill	i5c
> Australia/Brisbane	k0a
> Pacific/Port_Moresby	k0b
> Australia/Hobart	k0c
> Australia/Sydney	k0d
> Australia/Currie	k0e
> Asia/Vladivostok	k0f
> Australia/Lindeman	k0g
> Australia/Melbourne	k0h
> Asia/Ust-Nera	k0i
> Antarctica/DumontDUrville	k0j
> Pacific/Guam	k0k
> Pacific/Chuuk	k0l
> Etc/GMT-10	k0z
> Australia/Lord_Howe	k5a
> Pacific/Bougainville	l0a
> Pacific/Norfolk	l0b
> Antarctica/Macquarie	l0c
> Pacific/Kosrae	l0d
> Asia/Sakhalin	l0e
> Pacific/Noumea	l0f
> Pacific/Guadalcanal	l0g
> Asia/Magadan	l0h
> Pacific/Efate	l0i
> Asia/Srednekolymsk	l0j
> Antarctica/Casey	l0k
> Pacific/Pohnpei	l0l
> Etc/GMT-11	l0z
> Pacific/Tarawa	m0a
> Pacific/Nauru	m0b
> Pacific/Majuro	m0c
> Pacific/Fiji	m0d
> Pacific/Kwajalein	m0e
> Pacific/Wallis	m0f
> Asia/Anadyr	m0g
> Pacific/Wake	m0h
> Pacific/Funafuti	m0i
> Asia/Kamchatka	m0j
> Pacific/Auckland	m0k
> Etc/GMT-12	m0z
> Pacific/Tongatapu	m1a
> Pacific/Fakaofo	m1b
> Pacific/Enderbury	m1c
> Pacific/Apia	m1d
> Etc/GMT-13	m1z
> Pacific/Kiritimati	m2a
> Etc/GMT-14	m2z
> Pacific/Chatham	m8a
> Atlantic/Cape_Verde	n0a
> Atlantic/Azores	n0b
> America/Scoresbysund	n0c
> Etc/GMT+1	n0z
> America/Noronha	o0a
> Atlantic/South_Georgia	o0b
> Etc/GMT+2	o0z
> America/Argentina/La_Rioja	p0a
> America/Argentina/Catamarca	p0b
> America/Montevideo	p0c
> America/Argentina/Buenos_Aires	p0d
> Antarctica/Rothera	p0e
> America/Argentina/San_Juan	p0f
> America/Sao_Paulo	p0g
> America/Godthab	p0h
> America/Araguaina	p0i
> America/Argentina/Salta	p0j
> America/Argentina/Mendoza	p0k
> America/Santarem	p0l
> America/Cayenne	p0m
> America/Argentina/Tucuman	p0n
> America/Argentina/Jujuy	p0o
> Atlantic/Stanley	p0p
> America/Argentina/Cordoba	p0q
> America/Miquelon	p0r
> America/Argentina/San_Luis	p0s
> America/Belem	p0t
> America/Maceio	p0u
> America/Argentina/Ushuaia	p0v
> America/Recife	p0w
> America/Paramaribo	p0x
> America/Bahia	p0y
> Etc/GMT+3	p0z
> America/Fortaleza	p1a
> America/Argentina/Rio_Gallegos	p1b
> America/St_Johns	p5a
> America/Blanc-Sablon	q0a
> America/Grand_Turk	q0b
> America/Goose_Bay	q0c
> America/Glace_Bay	q0d
> America/Guyana	q0e
> America/Porto_Velho	q0f
> America/Boa_Vista	q0g
> America/Thule	q0h
> America/Caracas	q0i
> Atlantic/Bermuda	q0j
> America/Martinique	q0k
> America/Port_of_Spain	q0l
> America/Campo_Grande	q0m
> America/Halifax	q0n
> America/Barbados	q0o
> America/Moncton	q0p
> America/Manaus	q0q
> America/Santiago	q0r
> America/La_Paz	q0s
> America/Curacao	q0t
> America/Santo_Domingo	q0u
> America/Puerto_Rico	q0v
> America/Asuncion	q0w
> America/Cuiaba	q0x
> Etc/GMT+4	q0z
> America/Cancun	r0a
> America/Jamaica	r0b
> America/Kentucky/Louisville	r0c
> America/Rio_Branco	r0d
> America/Indiana/Marengo	r0e
> America/Kentucky/Monticello	r0f
> America/Lima	r0g
> America/Indiana/Winamac	r0h
> America/Indiana/Indianapolis	r0i
> America/New_York	r0j
> America/Indiana/Vevay	r0k
> America/Nipigon	r0l
> America/Detroit	r0m
> America/Guayaquil	r0n
> America/Thunder_Bay	r0o
> America/Panama	r0p
> America/Iqaluit	r0q
> America/Indiana/Vincennes	r0r
> America/Bogota	r0s
> America/Eirunepe	r0t
> America/Atikokan	r0u
> America/Indiana/Petersburg	r0v
> America/Port-au-Prince	r0w
> America/Nassau	r0x
> America/Toronto	r0y
> Etc/GMT+5	r0z
> America/Havana	r1a
> America/Pangnirtung	r1b
> America/Chicago	s0a
> America/Resolute	s0b
> America/Bahia_Banderas	s0c
> America/North_Dakota/Beulah	s0d
> America/Swift_Current	s0e
> America/North_Dakota/Center	s0f
> America/Winnipeg	s0g
> America/El_Salvador	s0h
> America/Indiana/Tell_City	s0i
> America/Mexico_City	s0j
> America/Costa_Rica	s0k
> America/Monterrey	s0l
> America/Tegucigalpa	s0m
> America/Managua	s0n
> America/Merida	s0o
> America/Menominee	s0p
> America/Rankin_Inlet	s0q
> America/Belize	s0r
> Pacific/Galapagos	s0s
> America/Regina	s0t
> America/Indiana/Knox	s0u
> America/North_Dakota/New_Salem	s0v
> Pacific/Easter	s0w
> America/Rainy_River	s0x
> America/Guatemala	s0y
> Etc/GMT+6	s0z
> America/Matamoros	s1a
> America/Edmonton	t0a
> America/Chihuahua	t0b
> America/Inuvik	t0c
> America/Cambridge_Bay	t0d
> America/Mazatlan	t0e
> America/Hermosillo	t0f
> America/Fort_Nelson	t0g
> America/Boise	t0h
> America/Yellowknife	t0i
> America/Creston	t0j
> America/Denver	t0k
> America/Dawson_Creek	t0l
> America/Phoenix	t0m
> America/Ojinaga	t0n
> Etc/GMT+7	t0z
> America/Tijuana	u0a
> America/Los_Angeles	u0b
> Pacific/Pitcairn	u0c
> America/Vancouver	u0d
> America/Whitehorse	u0e
> America/Dawson	u0f
> Etc/GMT+8	u0z
> America/Metlakatla	v0a
> America/Anchorage	v0b
> America/Juneau	v0c
> America/Sitka	v0d
> Pacific/Gambier	v0e
> America/Yakutat	v0f
> America/Nome	v0g
> Etc/GMT+9	v0z
> Pacific/Marquesas	v5a
> Pacific/Rarotonga	w0a
> Pacific/Tahiti	w0b
> Pacific/Honolulu	w0c
> America/Adak	w0d
> Etc/GMT+10	w0z
> Pacific/Pago_Pago	x0a
> Pacific/Niue	x0b
> Etc/GMT+11	x0z
> Etc/GMT+12	y0z
> Europe/Dublin	z0a
> Africa/Abidjan	z0b
> Atlantic/Faroe	z0c
> Africa/Bissau	z0d
> Atlantic/Madeira	z0e
> Africa/Accra	z0f
> Africa/Casablanca	z0g
> Atlantic/Reykjavik	z0h
> America/Danmarkshavn	z0i
> Atlantic/Canary	z0j
> Europe/Lisbon	z0k
> Africa/Monrovia	z0l
> Africa/El_Aaiun	z0m
> Europe/London	z0n
> Etc/UTC	z0z
> Etc/GMT	z0z



More information about the tz mailing list