Geography-Country-Utils

 view release on metacpan or  search on metacpan

lib/Geography/Country/TZ/Zone.pm  view on Meta::CPAN

        $t = &conv($t) if ($t);
        while (<DATA>) {
                chop;
                my @tokens = split(/\s+/);
                last if ($tokens[0] ne 'Rule' || $tokens[1] ne $cn);
                last if ($tokens[2] > $y);
                next if ($tokens[3] =~ /^\d+$/ && $tokens[3]);
                next if ($tokens[3] eq 'only' && $y != $tokens[2]);
                last if (($mm = $map{$tokens[5]}) > $m);
                next if ($m == $mm && &find($tokens[6], $m, $y) > $d);
                $def = $tokens[8];
        }
        &conv($def);
}

@map2{qw(Sun Mon Tue Wed Thu Fri Sat)} = (1 .. 7);

sub find {
        my ($exp, $m, $y) = @_;
        return $exp if ($exp =~ /^\d+$/);
        my $d;
        if ($exp =~ s/^last//) {
                my $l = $map2{$exp};
                my $t = maketime(1, $m, $y);
                for (;;) {
                        my @t = gmtime($t);
                        last if ($t[4] + 1 != $m);
                        $d = $t[3] if ($t[6] + 1 == $l);
                        $t += 3600 * 24;
                }
		return $d;
        }
#	$exp = "$exp>=1" if ($map2{$exp});
        if ($exp =~ s/([<>])\=(\d+)$//) {
                my $val = $2;
                my $neg = ($1 eq "<") ? -1 : 1;
                my $l = $map2{$exp};
                my $t = maketime($val, $m, $y);
                for (;;) {
                        my @t = gmtime($t);
                        return $t[3] if ($t[6] + 1 == $l);
                        $t += 3600 * 24 * $neg;
                }
        }
        die "Unparsable $exp";
}

sub maketime {
        require Time::Local;
        Time::Local::timegm(0, 0, 0, $_[0], $_[1] - 1, $_[2] - 1900);
}

1;
__DATA__

Zone	Africa/Algiers	0:12:12 -	LMT	1891 Mar 15 0:01
			0:09:21	-	PMT	1911 Mar 11    # Paris Mean Time
			0:00	Algeria	WE%sT	1940 Feb 25 2:00
			1:00	Algeria	CE%sT	1946 Oct  7
			0:00	-	WET	1956 Jan 29
			1:00	-	CET	1963 Apr 14
			0:00	Algeria	WE%sT	1977 Oct 21
			1:00	Algeria	CE%sT	1979 Oct 26
			0:00	Algeria	WE%sT	1981 May
			1:00	-	CET

Zone	Africa/Luanda	0:52:56	-	LMT	1892
			0:52:04	-	LMT	1911 May 26 # Luanda Mean Time?
			1:00	-	WAT

Zone Africa/Porto-Novo	0:10:28	-	LMT	1912
			0:00	-	GMT	1934 Feb 26
			1:00	-	WAT

Zone	Africa/Gaborone	1:43:40 -	LMT	1885
			2:00	-	CAT	1943 Sep 19 2:00
			2:00	1:00	CAST	1944 Mar 19 2:00
			2:00	-	CAT

Zone Africa/Ouagadougou	-0:06:04 -	LMT	1912
			 0:00	-	GMT

Zone Africa/Bujumbura	1:57:28	-	LMT	1890
			2:00	-	CAT

Zone	Africa/Douala	0:38:48	-	LMT	1912
			1:00	-	WAT

Zone Atlantic/Cape_Verde -1:34:04 -	LMT	1907			# Praia
			-2:00	-	CVT	1942 Sep
			-2:00	1:00	CVST	1945 Oct 15
			-2:00	-	CVT	1975 Nov 25 2:00
			-1:00	-	CVT

Zone	Africa/Bangui	1:14:20	-	LMT	1912
			1:00	-	WAT

Zone	Africa/Ndjamena	1:00:12 -	LMT	1912
			1:00	-	WAT	1979 Oct 14
			1:00	1:00	WAST	1980 Mar  8
			1:00	-	WAT

Zone	Indian/Comoro	2:53:04 -	LMT	1911 Jul   # Moroni, Gran Comoro
			3:00	-	EAT

Zone Africa/Kinshasa	1:01:12 -	LMT	1897 Nov 9
			1:00	-	WAT
Zone Africa/Lubumbashi	1:49:52 -	LMT	1897 Nov 9
			2:00	-	CAT

Zone Africa/Brazzaville	1:01:08 -	LMT	1912
			1:00	-	WAT

Zone	Africa/Abidjan	-0:16:08 -	LMT	1912
			 0:00	-	GMT

Zone	Africa/Djibouti	2:52:36 -	LMT	1911 Jul
			3:00	-	EAT




Zone	Africa/Cairo	2:05:00 -	LMT	1900 Oct
			2:00	Egypt	EE%sT

Zone	Africa/Malabo	0:35:08 -	LMT	1912
			0:00	-	GMT	1963 Dec 15
			1:00	-	WAT

Zone	Africa/Asmera	2:35:32 -	LMT	1870
			2:35:32	-	AMT	1890	      # Asmera Mean Time
			2:35:20	-	ADMT	1936 May 5    # Adis Dera MT
			3:00	-	EAT

Zone Africa/Addis_Ababa	2:34:48 -	LMT	1870
			2:35:20	-	ADMT	1936 May 5    # Adis Dera MT
			3:00	-	EAT

Zone Africa/Libreville	0:37:48 -	LMT	1912
			1:00	-	WAT

Zone	Africa/Banjul	-1:06:36 -	LMT	1912
			-1:06:36 -	BMT	1935	# Banjul Mean Time
			-1:00	-	WAT	1964
			 0:00	-	GMT

Zone	Africa/Accra	-0:00:52 -	LMT	1918
			 0:00	Ghana	%s

Zone	Africa/Conakry	-0:54:52 -	LMT	1912
			 0:00	-	GMT	1934 Feb 26
			-1:00	-	WAT	1960
			 0:00	-	GMT

Zone	Africa/Bissau	-1:02:20 -	LMT	1911 May 26
			-1:00	-	WAT	1975
			 0:00	-	GMT

Zone	Africa/Nairobi	2:27:16	-	LMT	1928 Jul
			3:00	-	EAT	1930
			2:30	-	BEAT	1940
			2:45	-	BEAUT	1960
			3:00	-	EAT

Zone	Africa/Maseru	1:50:00 -	LMT	1903 Mar
			2:00	-	SAST	1943 Sep 19 2:00
			2:00	1:00	SAST	1944 Mar 19 2:00
			2:00	-	SAST

Zone	Africa/Monrovia	-0:43:08 -	LMT	1882
			-0:43:08 -	MMT	1919 Mar # Monrovia Mean Time
			-0:44:30 -	LRT	1972 May # Liberia Time
			 0:00	-	GMT



Zone	Africa/Tripoli	0:52:44 -	LMT	1920
			1:00	Libya	CE%sT	1959
			2:00	-	EET	1982
			1:00	Libya	CE%sT	1990 May  4
			2:00	-	EET	1996 Sep 30
			1:00	-	CET	1997 Apr  4
			1:00	1:00	CEST	1997 Oct  4
			2:00	-	EET

Zone Indian/Antananarivo 3:10:04 -	LMT	1911 Jul
			3:00	-	EAT	1954 Feb 27 23:00s
			3:00	1:00	EAST	1954 May 29 23:00s
			3:00	-	EAT

Zone	Africa/Blantyre	2:20:00 -	LMT	1903 Mar
			2:00	-	CAT

Zone	Africa/Bamako	-0:32:00 -	LMT	1912
			 0:00	-	GMT	1934 Feb 26
			-1:00	-	WAT	1960 Jun 20
			 0:00	-	GMT
Zone	Africa/Timbuktu	-0:12:04 -	LMT	1912
			 0:00	-	GMT

Zone Africa/Nouakchott	-1:03:48 -	LMT	1912
			 0:00	-	GMT	1934 Feb 26
			-1:00	-	WAT	1960 Nov 28
			 0:00	-	GMT

Zone Indian/Mauritius	3:50:00 -	LMT	1907		# Port Louis
			4:00	-	MUT	# Mauritius Time

Zone	Indian/Mayotte	3:00:56 -	LMT	1911 Jul	# Mamoutzou
			3:00	-	EAT

Zone Africa/Casablanca	-0:30:20 -	LMT	1913 Oct 26
			 0:00	Morocco	WE%sT	1984 Mar 16
			 1:00	-	CET	1986
			 0:00	-	WET
Zone Africa/El_Aaiun	-0:52:48 -	LMT	1934 Jan
			-1:00	-	WAT	1976 Apr 14
			 0:00	-	WET

Zone	Africa/Maputo	2:10:20 -	LMT	1903 Mar
			2:00	-	CAT

Zone	Africa/Windhoek	1:08:24 -	LMT	1892 Feb 8
			1:30	-	SWAT	1903 Mar	# SW Africa Time
			2:00	-	SAST	1942 Sep 20 2:00
			2:00	1:00	SAST	1943 Mar 21 2:00
			2:00	-	SAST	1990 Mar 21 # independence
			2:00	-	CAT	1994 Apr  3
			1:00	Namibia	WA%sT

Zone	Africa/Niamey	 0:08:28 -	LMT	1912
			-1:00	-	WAT	1934 Feb 26
			 0:00	-	GMT	1960
			 1:00	-	WAT

Zone	Africa/Lagos	0:13:36 -	LMT	1919 Sep
			1:00	-	WAT

Zone	Indian/Reunion	3:41:52 -	LMT	1911 Jun	# Saint-Denis
			4:00	-	RET	# Reunion Time

Zone	Africa/Kigali	2:00:16 -	LMT	1935 Jun
			2:00	-	CAT

Zone Atlantic/St_Helena	-0:22:48 -	LMT	1890		# Jamestown
			-0:22:48 -	JMT	1951	# Jamestown Mean Time
			 0:00	-	GMT

Zone	Africa/Sao_Tome	 0:26:56 -	LMT	1884
			-0:36:32 -	LMT	1912	# Lisbon Mean Time
			 0:00	-	GMT

Zone	Africa/Dakar	-1:09:44 -	LMT	1912
			-1:00	-	WAT	1941 Jun
			 0:00	-	GMT

Zone	Indian/Mahe	3:41:48 -	LMT	1906 Jun	# Victoria
			4:00	-	SCT	# Seychelles Time

Zone	Africa/Freetown	-0:53:00 -	LMT	1882
			-0:53:00 -	FMT	1913 Jun # Freetown Mean Time
			-1:00	SL	%s	1957
			 0:00	SL	%s

Zone Africa/Mogadishu	3:01:28 -	LMT	1893 Nov
			3:00	-	EAT	1931
			2:30	-	BEAT	1957
			3:00	-	EAT

Zone Africa/Johannesburg 1:52:00 -	LMT	1892 Feb 8
			1:30	-	SAST	1903 Mar
			2:00	SA	SAST

Zone	Africa/Khartoum	2:10:08 -	LMT	1931

lib/Geography/Country/TZ/Zone.pm  view on Meta::CPAN

























Zone	Europe/London	-0:01:15 -	LMT	1847 Dec  1
			 0:00	GB-Eire	%s	1968 Oct 27
			 1:00	-	BST	1971 Oct 31 2:00u
			 0:00	GB-Eire	%s	1996
			 0:00	EU	GMT/BST
Zone	Europe/Belfast	-0:23:40 -	LMT	1880 Aug  2
			-0:25:21 -	DMT	1916 May 21 2:00    # Dublin MT
			-0:25:21 1:00	IST	1916 Oct  1 2:00s   # Irish Summer Time
			 0:00	GB-Eire	%s	1968 Oct 27
			 1:00	-	BST	1971 Oct 31 2:00u
			 0:00	GB-Eire	%s	1996
			 0:00	EU	GMT/BST
Zone	Europe/Dublin	-0:25:21 -	LMT	1880 Aug  2
			-0:25:21 -	DMT	1916 May 21 2:00    # Dublin MT
			-0:25:21 1:00	IST	1916 Oct  1 2:00s
			 0:00	GB-Eire	%s	1921 Dec  6 # independence
			 0:00	GB-Eire	GMT/IST	1940 Feb 25 2:00
			 0:00	1:00	IST	1946 Oct  6 2:00
			 0:00	-	GMT	1947 Mar 16 2:00
			 0:00	1:00	IST	1947 Nov  2 2:00
			 0:00	-	GMT	1948 Apr 18 2:00
			 0:00	GB-Eire	GMT/IST	1968 Oct 27
			 1:00	-	IST	1971 Oct 31 2:00u
			 0:00	GB-Eire	GMT/IST	1996
			 0:00	EU	GMT/IST










Zone	WET		0:00	EU	WE%sT
Zone	CET		1:00	C-Eur	CE%sT
Zone	MET		1:00	C-Eur	ME%sT
Zone	EET		2:00	EU	EE%sT




Zone	Europe/Tirane	1:19:20 -	LMT	1914
			1:00	-	CET	1940 Jun 16
			1:00	Albania	CE%sT	1984 Jul
			1:00	EU	CE%sT

Zone	Europe/Andorra	0:06:04 -	LMT	1901
			0:00	-	WET	1946 Sep 30
			1:00	-	CET	1985 Mar 31 2:00
			1:00	EU	CE%sT

Zone	Europe/Vienna	1:05:20 -	LMT	1893 Apr
			1:00	C-Eur	CE%sT	1918 Jun 16 3:00
			1:00	Austria	CE%sT	1940 Apr  1 2:00
			1:00	C-Eur	CE%sT	1945 Apr  2 2:00
			1:00	Austria	CE%sT	1981
			1:00	EU	CE%sT

Zone	Europe/Minsk	1:50:16 -	LMT	1880
			1:50	-	MMT	1924 May 2 # Minsk Mean Time
			2:00	-	EET	1930 Jun 21
			3:00	-	MSK	1941 Jun 28
			1:00	C-Eur	CE%sT	1944 Jul  3
			3:00	Russia	MSK/MSD	1990
			3:00	-	MSK	1991 Mar 31 2:00s
			2:00	1:00	EEST	1991 Sep 29 2:00s
			2:00	-	EET	1992 Mar 29 0:00s
			2:00	1:00	EEST	1992 Sep 27 0:00s
			2:00	Russia	EE%sT

Zone	Europe/Brussels	0:17:30 -	LMT	1880
			0:17:30	-	BMT	1892 May  1 12:00 # Brussels MT
			0:00	-	WET	1914 Nov  8
			1:00	-	CET	1916 May  1  0:00
			1:00	C-Eur	CE%sT	1918 Nov 11 11:00u
			0:00	Belgium	WE%sT	1940 May 20  2:00s
			1:00	C-Eur	CE%sT	1944 Sep  3
			1:00	Belgium	CE%sT	1977
			1:00	EU	CE%sT


Zone	Europe/Sofia	1:33:16 -	LMT	1880
			1:56:56	-	IMT	1894 Nov 30 # Istanbul MT?
			2:00	-	EET	1942 Nov  2  3:00
			1:00	C-Eur	CE%sT	1945 Apr  2  3:00
			2:00	-	EET	1979 Mar 31 23:00
			2:00	Bulg	EE%sT	1982 Sep 26  2:00
			2:00	C-Eur	EE%sT	1991
			2:00	E-Eur	EE%sT	1997
			2:00	EU	EE%sT


Zone	Europe/Prague	0:57:44 -	LMT	1850
			0:57:44	-	PMT	1891 Oct     # Prague Mean Time
			1:00	C-Eur	CE%sT	1944 Sep 17 2:00s
			1:00	Czech	CE%sT	1979
			1:00	EU	CE%sT

Zone Europe/Copenhagen	 0:50:20 -	LMT	1890
			 0:50:20 -	CMT	1894 Apr  # Copenhagen Mean Time
			 1:00	Denmark	CE%sT	1942 Nov  2 2:00s
			 1:00	C-Eur	CE%sT	1945 Apr  2 2:00
			 1:00	Denmark	CE%sT	1980
			 1:00	EU	CE%sT
Zone Atlantic/Faeroe	-0:27:04 -	LMT	1908 Jan 11	# Torshavn
			 0:00	-	WET	1981
			 0:00	EU	WE%sT

Zone America/Scoresbysund -1:29:00 -	LMT	1916 Jul 28 # Ittoqqortoormiit
			-2:00	-	CGT	1980 Apr  6 2:00
			-2:00	C-Eur	CG%sT	1981 Mar 29
			-1:00	EU	EG%sT
Zone America/Godthab	-3:26:56 -	LMT	1916 Jul 28 # Nuuk
			-3:00	-	WGT	1980 Apr  6 2:00
			-3:00	EU	WG%sT
Zone America/Thule	-4:35:08 -	LMT	1916 Jul 28 # Pituffik air base
			-4:00	Thule	A%sT





Zone	Europe/Tallinn	1:39:00	-	LMT	1880
			1:39:00	-	TMT	1918 Feb # Tallinn Mean Time
			1:00	C-Eur	CE%sT	1919 Jul
			1:39:00	-	TMT	1921 May
			2:00	-	EET	1940 Aug  6
			3:00	-	MSK	1941 Sep 15
			1:00	C-Eur	CE%sT	1944 Sep 22
			3:00	Russia	MSK/MSD	1989 Mar 26 2:00s
			2:00	1:00	EEST	1989 Sep 24 2:00s
			2:00	C-Eur	EE%sT	1998 Sep 22
			2:00	EU	EE%sT	1999 Nov  1
			2:00	-	EET

Zone	Europe/Helsinki	1:39:52 -	LMT	1878 May 31
			1:39:52	-	HMT	1921 May    # Helsinki Mean Time
			2:00	Finland	EE%sT	1981 Mar 29 2:00
			2:00	EU	EE%sT

Zone	Europe/Paris	0:09:21 -	LMT	1891 Mar 15  0:01
			0:09:21	-	PMT	1911 Mar 11    # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 14 23:00
			1:00	C-Eur	CE%sT	1944 Aug 25
			0:00	France	WE%sT	1945 Sep 16  3:00
			1:00	France	CE%sT	1977
			1:00	EU	CE%sT



Zone	Europe/Berlin	0:53:28 -	LMT	1893 Apr
			1:00	C-Eur	CE%sT	1945 Apr 2 2:00
			1:00	Germany	CE%sT	1980
			1:00	EU	CE%sT

Zone Europe/Gibraltar	-0:21:24 -	LMT	1880 Aug  2
			0:00	GB-Eire	%s	1957 Apr 14 2:00
			1:00	-	CET	1982
			1:00	EU	CE%sT

Zone	Europe/Athens	1:34:52 -	LMT	1895 Sep 14
			1:34:52	-	AMT	1916 Jul 28 0:01     # Athens MT
			2:00	Greece	EE%sT	1941 Apr 30
			1:00	Greece	CE%sT	1944 Apr  4
			2:00	Greece	EE%sT	1981
			# Shanks says they switched to C-Eur in 1981;
			# go with EU instead, since Greece joined it on Jan 1.
			2:00	EU	EE%sT

Zone	Europe/Budapest	1:16:20 -	LMT	1890 Oct
			1:00	C-Eur	CE%sT	1918
			1:00	Hungary	CE%sT	1941 Apr  6  2:00
			1:00	C-Eur	CE%sT	1945 May  1 23:00
			1:00	Hungary	CE%sT	1980 Sep 28  2:00s
			1:00	EU	CE%sT

Zone Atlantic/Reykjavik	-1:27:24 -	LMT	1837
			-1:27:48 -	RMT	1908 # Reykjavik Mean Time?
			-1:00	Iceland	IS%sT	1968 Apr 7 1:00s
			 0:00	-	GMT

Zone	Europe/Rome	0:49:56 -	LMT	1866 Sep 22
			0:49:56	-	RMT	1893 Nov	# Rome Mean Time
			1:00	Italy	CE%sT	1942 Nov  2 2:00s
			1:00	C-Eur	CE%sT	1944 Jul
			1:00	Italy	CE%sT	1980
			1:00	EU	CE%sT


Zone	Europe/Riga	1:36:24	-	LMT	1880
			1:36:24	-	RMT	1918 Apr 15 2:00 #Riga Mean Time
			1:36:24	1:00	LST	1918 Sep 16 3:00 #Latvian Summer
			1:36:24	-	RMT	1919 Apr  1 2:00
			1:36:24	1:00	LST	1919 May 22 3:00
			1:36:24	-	RMT	1926 May 11
			2:00	-	EET	1940 Aug  5
			3:00	-	MSK	1941 Jul
			1:00	C-Eur	CE%sT	1944 Oct 13
			3:00	Russia	MSK/MSD	1989 Mar lastSun 2:00s
			2:00	1:00	EEST	1989 Sep lastSun 2:00s
			2:00	Latvia	EE%sT	1997 Jan 21
			2:00	EU	EE%sT	2000 Feb 29
			2:00	-	EET

Zone	Europe/Vaduz	0:38:04 -	LMT	1894 Jun
			1:00	-	CET	1981
			1:00	EU	CE%sT






Zone	Europe/Vilnius	1:41:16	-	LMT	1880
			1:24:00	-	WMT	1917	    # Warsaw Mean Time
			1:35:36	-	KMT	1919 Oct 10 # Kaunas Mean Time
			1:00	-	CET	1920 Jul 12
			2:00	-	EET	1920 Oct  9
			1:00	-	CET	1940 Aug  3
			3:00	-	MSK	1941 Jun 24
			1:00	C-Eur	CE%sT	1944 Aug
			3:00	Russia	MSK/MSD	1991 Mar 31 2:00s
			2:00	1:00	EEST	1991 Sep 29 2:00s
			2:00	C-Eur	EE%sT	1998
			2:00	-	EET	1998 Mar 29 1:00u
			1:00	EU	CE%sT	1999 Oct 31 1:00u
			2:00	-	EET

Zone Europe/Luxembourg	0:24:36 -	LMT	1904 Jun
			1:00	Lux	CE%sT	1918 Nov 25
			0:00	Lux	WE%sT	1929 Oct  6 2:00s
			0:00	Belgium	WE%sT	1940 May 14 3:00
			1:00	C-Eur	WE%sT	1944 Sep 18 3:00
			1:00	Belgium	CE%sT	1977
			1:00	EU	CE%sT


Zone	Europe/Malta	0:58:04 -	LMT	1893 Nov  2	# Valletta
			1:00	Italy	CE%sT	1942 Nov  2 2:00s
			1:00	C-Eur	CE%sT	1945 Apr  2 2:00s
			1:00	Italy	CE%sT	1973 Mar 31
			1:00	Malta	CE%sT	1981
			1:00	EU	CE%sT

Zone	Europe/Chisinau	1:55:20 -	LMT	1880
			1:55	-	CMT	1918 Feb 15 # Chisinau MT
			1:44:24	-	BMT	1931 Jul 24 # Bucharest MT
			2:00	Romania	EE%sT	1940 Aug 15
			2:00	1:00	EEST	1941 Jul 17
			1:00	C-Eur	CE%sT	1944 Aug 24
			3:00	Russia	MSK/MSD	1990
			3:00	-	MSK	1990 May 6
			2:00	-	EET	1991
			2:00	Russia	EE%sT	1992
			2:00	E-Eur	EE%sT	1997
			2:00	EU	EE%sT
Zone	Europe/Tiraspol	1:58:32	-	LMT	1880
			1:55	-	CMT	1918 Feb 15 # Chisinau MT
			1:44:24	-	BMT	1931 Jul 24 # Bucharest MT
			2:00	Romania	EE%sT	1940 Aug 15
			2:00	1:00	EEST	1941 Jul 17
			1:00	C-Eur	CE%sT	1944 Aug 24
			3:00	Russia	MSK/MSD	1991 Mar 31 2:00
			2:00	Russia	EE%sT	1992 Jan 19 2:00
			3:00	Russia	MSK/MSD

Zone	Europe/Monaco	0:29:32 -	LMT	1891 Mar 15
			0:09:21	-	PMT	1911 Mar 11    # Paris Mean Time
			0:00	France	WE%sT	1945 Sep 16 3:00
			1:00	France	CE%sT	1977
			1:00	EU	CE%sT

Zone Europe/Amsterdam	0:19:28 -	LMT	1892 May
			0:19:28	Neth	%s	1937 Jul
			0:20	Neth	NE%sT	1940 May 16 0:40
			1:00	C-Eur	CE%sT	1945 Apr  2 2:00
			1:00	Neth	CE%sT	1977
			1:00	EU	CE%sT

Zone	Europe/Oslo	0:43:00 -	LMT	1895
			1:00	Norway	CE%sT	1940 Aug 10 23:00
			1:00	C-Eur	CE%sT	1945 Apr  2  2:00
			1:00	Norway	CE%sT	1980
			1:00	EU	CE%sT

Zone Atlantic/Jan_Mayen	-1:00	-	EGT

Zone	Europe/Warsaw	1:24:00 -	LMT	1880
			1:24:00	-	WMT	1915 Aug  5   # Warsaw Mean Time
			1:00	C-Eur	CE%sT	1918 Sep 16 3:00
			2:00	Poland	EE%sT	1922 Jun
			1:00	Poland	CE%sT	1940 Jun 23 2:00
			1:00	C-Eur	CE%sT	1944 Oct
			1:00	Poland	CE%sT	1977 Apr  3 1:00
			1:00	W-Eur	CE%sT	1999
			1:00	EU	CE%sT

Zone	Europe/Lisbon	-0:36:32 -	LMT	1884
			-0:36:32 -	LMT	1911 May 24   # Lisbon Mean Time
			 0:00	Port	WE%sT	1966 Apr  3 2:00
			 1:00	-	CET	1976 Sep 26 1:00
			 0:00	Port	WE%sT	1983 Sep 25 1:00s
			 0:00	W-Eur	WE%sT	1992 Sep 27 1:00s
			 1:00	EU	CE%sT	1996 Mar 31 1:00u
			 0:00	EU	WE%sT
Zone Atlantic/Azores	-1:42:40 -	LMT	1884		# Ponta Delgada
			-1:55	-	HMT	1911 May 24  # Horta Mean Time
			-2:00	Port	AZO%sT	1966 Apr  3 2:00 # Azores Time
			-1:00	Port	AZO%sT	1983 Sep 25 1:00s
			-1:00	W-Eur	AZO%sT	1992 Sep 27 1:00s
			 0:00	EU	WE%sT	1993 Mar 28 1:00u
			-1:00	EU	AZO%sT
Zone Atlantic/Madeira	-1:07:36 -	LMT	1884		# Funchal
			-1:08	-	FMT	1911 May 24  # Funchal Mean Time
			-1:00	Port	MAD%sT	1966 Apr  3 2:00 # Madeira Time
			 0:00	Port	WE%sT	1983 Sep 25 1:00s
			 0:00	EU	WE%sT

Zone Europe/Bucharest	1:44:24 -	LMT	1891 Oct
			1:44:24	-	BMT	1931 Jul 24	# Bucharest MT
			2:00	Romania	EE%sT	1981 Mar 29 2:00s
			2:00	C-Eur	EE%sT	1991
			2:00	Romania	EE%sT	1994
			2:00	E-Eur	EE%sT	1997
			2:00	EU	EE%sT


Zone Europe/Kaliningrad	 1:22:00 - 	LMT	1893 Apr
			 1:00	C-Eur	CE%sT	1945
			 2:00	Poland	CE%sT	1946
			 3:00	Russia	MSK/MSD	1991 Mar 31 2:00s
			 2:00	Russia	EE%sT
Zone Europe/Moscow	 2:30:20 -	LMT	1880
			 2:30	-	MMT	1916 Jul  3 # Moscow Mean Time
			 2:30:48 Russia	%s	1919 Jul  1 2:00
			 3:00	Russia	MSK/MSD	1922 Oct
			 2:00	-	EET	1930 Jun 21
			 3:00	Russia	MSK/MSD	1991 Mar 31 2:00s
			 2:00	Russia	EE%sT	1992 Jan 19 2:00s
			 3:00	Russia	MSK/MSD
Zone Europe/Samara	 3:20:36 -	LMT	1919 Jul  1 2:00
			 3:00	-	KUYT	1930 Jun 21 # Kuybyshev
			 4:00	Russia	KUY%sT	1989 Mar 26 2:00s
			 3:00	Russia	KUY%sT	1991 Mar 31 2:00s
			 2:00	Russia	KUY%sT	1991 Sep 29 2:00s
			 3:00	-	KUYT	1991 Oct 20 3:00
			 4:00	Russia	SAM%sT	# Samara Time
Zone Asia/Yekaterinburg	 4:02:24 -	LMT	1919 Jul 15 4:00
			 4:00	-	SVET	1930 Jun 21 # Sverdlovsk Time
			 5:00	Russia	SVE%sT	1991 Mar 31 2:00s
			 4:00	Russia	SVE%sT	1992 Jan 19 2:00s
			 5:00	Russia	YEK%sT	# Yekaterinburg Time
Zone Asia/Omsk		 4:53:36 -	LMT	1919 Nov 14
			 5:00	-	OMST	1930 Jun 21 # Omsk TIme
			 6:00	Russia	OMS%sT	1991 Mar 31 2:00s
			 5:00	Russia	OMS%sT	1992 Jan 19 2:00s
			 6:00	Russia	OMS%sT
Zone Asia/Novosibirsk	 5:31:40 -	LMT	1919 Dec 14 6:00
			 6:00	-	NOVT	1930 Jun 21 # Novosibirsk Time
			 7:00	Russia	NOV%sT	1991 Mar 31 2:00s
			 6:00	Russia	NOV%sT	1992 Jan 19 2:00s
			 7:00	Russia	NOV%sT	1993 May 23 # says Shanks
			 6:00	Russia	NOV%sT
Zone Asia/Krasnoyarsk	 6:11:20 -	LMT	1920 Jan  6
			 6:00	-	KRAT	1930 Jun 21 # Krasnoyarsk Time
			 7:00	Russia	KRA%sT	1991 Mar 31 2:00s
			 6:00	Russia	KRA%sT	1992 Jan 19 2:00s
			 7:00	Russia	KRA%sT
Zone Asia/Irkutsk	 6:57:20 -	LMT	1880
			 6:57:20 -	IMT	1920 Jan 25 # Irkutsk Mean Time
			 7:00	-	IRKT	1930 Jun 21 # Irkutsk Time
			 8:00	Russia	IRK%sT	1991 Mar 31 2:00s
			 7:00	Russia	IRK%sT	1992 Jan 19 2:00s
			 8:00	Russia	IRK%sT
Zone Asia/Yakutsk	 8:38:40 -	LMT	1919 Dec 15
			 8:00	-	YAKT	1930 Jun 21 # Yakutsk Time
			 9:00	Russia	YAK%sT	1991 Mar 31 2:00s
			 8:00	Russia	YAK%sT	1992 Jan 19 2:00s
			 9:00	Russia	YAK%sT
Zone Asia/Vladivostok	 8:47:44 -	LMT	1922 Nov 15
			 9:00	-	VLAT	1930 Jun 21 # Vladivostok Time
			10:00	Russia	VLA%sT	1991 Mar 31 2:00s
			 9:00	Russia	VLA%sST	1992 Jan 19 2:00s
			10:00	Russia	VLA%sT
Zone Asia/Magadan	10:03:12 -	LMT	1924 May  2
			10:00	-	MAGT	1930 Jun 21 # Magadan Time
			11:00	Russia	MAG%sT	1991 Mar 31 2:00s
			10:00	Russia	MAG%sT	1992 Jan 19 2:00s
			11:00	Russia	MAG%sT
Zone Asia/Kamchatka	10:34:36 -	LMT	1922 Nov 10
			11:00	-	PETT	1930 Jun 21 # P-K Time
			12:00	Russia	PET%sT	1991 Mar 31 2:00s
			11:00	Russia	PET%sT	1992 Jan 19 2:00s
			12:00	Russia	PET%sT
Zone Asia/Anadyr	11:49:56 -	LMT	1924 May  2
			12:00	-	ANAT	1930 Jun 21 # Anadyr Time
			13:00	Russia	ANA%sT	1982 Apr  1 0:00s
			12:00	Russia	ANA%sT	1991 Mar 31 2:00s
			11:00	Russia	ANA%sT	1992 Jan 19 2:00s
			12:00	Russia	ANA%sT


Zone	Europe/Madrid	-0:14:44 -	LMT	1901
			 0:00	Spain	WE%sT	1946 Sep 30
			 1:00	Spain	CE%sT	1979
			 1:00	EU	CE%sT
Zone	Africa/Ceuta	-0:21:16 -	LMT	1901
			 0:00	-	WET	1918 May  6 23:00
			 0:00	1:00	WEST	1918 Oct  7 23:00
			 0:00	-	WET	1924
			 0:00	Spain	WE%sT	1929
			 0:00 SpainAfrica WE%sT 1984 Mar 16
			 1:00	-	CET	1986
			 1:00	EU	CE%sT
Zone	Atlantic/Canary	-1:01:36 -	LMT	1922 Mar # Las Palmas de Gran C.
			-1:00	-	CANT	1946 Sep 30 1:00 # Canaries Time
			 0:00	-	WET	1980 Apr  6 0:00s
			 0:00	1:00	WEST	1980 Sep 28 0:00s
			 0:00	EU	WE%sT

Zone Europe/Stockholm	1:12:12 -	LMT	1878 May 31
			1:12:12	-	SMT	1900 Jan  1  1:00 # Stockholm MT
			1:00	-	CET	1916 Apr 14 23:00s
			1:00	1:00	CEST	1916 Sep 30 23:00s
			1:00	-	CET	1980
			1:00	EU	CE%sT

Zone	Europe/Zurich	0:34:08 -	LMT	1848 Sep 12
			0:29:44	-	BMT	1894 Jun # Bern Mean Time
			1:00	Swiss	CE%sT	1981
			1:00	EU	CE%sT

Zone	Europe/Istanbul	1:55:52 -	LMT	1880
			1:56:56	-	IMT	1910 Oct # Istanbul Mean Time?
			2:00	Turkey	EE%sT	1978 Oct 15
			3:00	Turkey	TR%sT	1985 Apr 20 # Turkey Time
			2:00	Turkey	EE%sT	1986
			2:00	C-Eur	EE%sT	1991
			2:00	EU	EE%sT

Zone Europe/Kiev	2:02:04 -	LMT	1880
			2:02:04	-	KMT	1924 May  2 # Kiev Mean Time
			2:00	-	EET	1930 Jun 21
			3:00	-	MSK	1941 Sep 20
			1:00	C-Eur	CE%sT	1943 Nov  6
			3:00	Russia	MSK/MSD	1990
			3:00	-	MSK	1990 Jul  1 2:00
			2:00	-	EET	1992
			2:00	E-Eur	EE%sT	1995
			2:00	EU	EE%sT
Zone Europe/Uzhgorod	1:29:12 -	LMT	1890 Oct
			1:00	-	CET	1940
			1:00	C-Eur	CE%sT	1944 Oct
			1:00	1:00	CEST	1944 Oct 26
			1:00	-	CET	1945 Jun 29
			3:00	Russia	MSK/MSD	1990
			3:00	-	MSK	1990 Jul  1 2:00
			1:00	-	CET	1991 Mar 31 3:00
			2:00	-	EET	1992
			2:00	E-Eur	EE%sT	1995
			2:00	EU	EE%sT
Zone Europe/Zaporozhye	2:20:40 -	LMT	1880
			2:20	-	CUT	1924 May  2 # Central Ukraine T
			2:00	-	EET	1930 Jun 21
			3:00	-	MSK	1941 Aug 25
			1:00	C-Eur	CE%sT	1943 Oct 25
			3:00	Russia	MSK/MSD	1991 Mar 31 2:00
			2:00	E-Eur	EE%sT	1995
			2:00	EU	EE%sT
Zone Europe/Simferopol	2:16:24 -	LMT	1880
			2:16	-	SMT	1924 May  2 # Simferopol Mean T
			2:00	-	EET	1930 Jun 21
			3:00	-	MSK	1941 Nov
			1:00	C-Eur	CE%sT	1944 Apr 13
			3:00	Russia	MSK/MSD	1990
			3:00	-	MSK	1990 Jul  1 2:00
			2:00	-	EET	1992
			2:00	E-Eur	EE%sT	1994 May
			3:00	E-Eur	MSK/MSD	1996 Mar 31 3:00s
			3:00	1:00	MSD	1996 Oct 27 3:00s
			3:00	Russia	MSK/MSD	1997
			3:00	-	MSK	1997 Mar lastSun 1:00u
			2:00	EU	EE%sT

Zone	Europe/Belgrade	1:22:00	-	LMT	1884
			1:00	-	CET	1941 Apr 18 23:00
			1:00	C-Eur	CE%sT	1945 May  8  2:00s
			1:00	1:00	CEST	1945 Sep 16  2:00s
			1:00	-	CET	1982 Nov 27
			1:00	EU	CE%sT

Zone America/New_York	-4:56:02 -	LMT	1883 Nov 18 12:00
			-5:00	US	E%sT	1920
			-5:00	NYC	E%sT	1942
			-5:00	US	E%sT	1946
			-5:00	NYC	E%sT	1967
			-5:00	US	E%sT



Zone America/Chicago	-5:50:36 -	LMT	1883 Nov 18 12:00
			-6:00	US	C%sT	1920
			-6:00	Chicago	C%sT	1936 Mar  1 2:00
			-5:00	-	EST	1936 Nov 15 2:00
			-6:00	Chicago	C%sT	1942
			-6:00	US	C%sT	1946
			-6:00	Chicago	C%sT	1967
			-6:00	US	C%sT

Zone America/Denver	-6:59:56 -	LMT	1883 Nov 18 12:00
			-7:00	US	M%sT	1920
			-7:00	Denver	M%sT	1942
			-7:00	US	M%sT	1946
			-7:00	Denver	M%sT	1967
			-7:00	US	M%sT

Zone America/Los_Angeles -7:52:58 -	LMT	1883 Nov 18 12:00
			-8:00	US	P%sT	1946
			-8:00	CA	P%sT	1967
			-8:00	US	P%sT

Zone America/Juneau	 -8:57:41 -	LMT	1900 Aug 20 12:00
			 -8:00	-	PST	1942
			 -8:00	US	P%sT	1946
			 -8:00	-	PST	1969
			 -8:00	US	P%sT	1983 Oct 30 2:00
			 -9:00	US	AK%sT
Zone America/Yakutat	 -9:18:55 -	LMT	1900 Aug 20 12:00
			 -9:00	-	YST	1942
			 -9:00	US	Y%sT	1946
			 -9:00	-	YST	1969
			 -9:00	US	Y%sT	1983 Oct 30 2:00
			 -9:00	US	AK%sT
Zone America/Anchorage	 -9:59:36 -	LMT	1900 Aug 20 12:00
			-10:00	-	CAT	1942
			-10:00	US	CAT/CAWT 1946
			-10:00	-	CAT	1967 Apr
			-10:00	-	AHST	1969
			-10:00	US	AH%sT	1983 Oct 30 2:00
			 -9:00	US	AK%sT
Zone America/Nome	-11:01:38 -	LMT	1900 Aug 20 12:00
			-11:00	-	NST	1942
			-11:00	US	N%sT	1946
			-11:00	-	NST	1967 Apr
			-11:00	-	BST	1969
			-11:00	US	B%sT	1983 Oct 30 2:00
			 -9:00	US	AK%sT
Zone America/Adak	-11:46:38 -	LMT	1900 Aug 20 12:00
			-11:00	-	NST	1942



( run in 0.982 second using v1.01-cache-2.11-cpan-e1769b4cff6 )