I just found the book Thomas G. Shanks The International Atlas (3rd ed) San Diego: ACS Publications, Inc. (1991) xx + 428 pp. ISBN 0-935127-16-X, $36, order phone: +1 800 888 9983 which lists detailed historical time zone data, plus latitude and longitude, for places all over the world. For example, for Germany it lists over 20 pages of data in fine print, of which one page contains seven different historical time zone regions and the complete history of all GMT offsets in each region since the 1890s (when Germany started using standard time). There's a separate atlas (which I don't have) for US time zone data. ACS Publications serves astrologers, who seem to be the folks who care most about historical time zone data. (You get a 20% discount on your second order if you tell them your sun sign!) To see if it was good stuff, I checked Shanks's book vs the tz1993d rules for Great Britain and Eire. In nearly every case where Shanks disagreed with tz1993d, it seems to me that Shanks is more likely to be correct. The discrepancies included the following: * transcription errors in 1916, 1923, and 1968, where the tz1993d data doesn't match Peter Ilieve's transcription of the UK Government paper "Summer Time: A Consultation Document". * Shanks says summer time began in 1924 in 13 April, which seems far more likely to be correct than Ilieve's 30 April, since 30 April 1924 was a Wednesday. * Shanks says Eire did not observe war time during World War II, which seems likely since Eire was neutral. He says that Eire stayed an hour ahead of GMT through the war, and then had its own summer time scheme until 1948 when it reverted to GB time. * Shanks says Eire was 25 minutes behind GMT until 1916, switched to 35 minutes ahead of GMT during summer 1916, and then switched the clocks twice (!) on the morning of 1 Oct 1916, first to 1 hour ahead of GMT, then (35 minutes later) to GMT. This is the only hard-to-believe part of Shanks's data, but it's just crazy enough to be true. That last bit exposed another zdump bug: if the clock changes more than once in the same 12-hour period it sometimes misses some of the changes. I doubt whether Shanks is infallible -- his data for Israel looks funny, and he doesn't agree with the stories I've heard about the Soviet Union in the 1930s -- but it does seem like a good source, at least for those parts of the world where horoscopes are popular. Here's a proposed patch. =================================================================== RCS file: RCS/zdump.c,v retrieving revision 7.7 retrieving revision 7.7.1.1 diff -c -r7.7 -r7.7.1.1 *** zdump.c 1993/09/06 01:21:19 7.7 --- zdump.c 1993/10/15 00:18:49 7.7.1.1 *************** *** 82,88 **** static char * abbr(); static long delta(); ! static void hunt(); static int longest; static char * progname; static void show(); --- 82,88 ---- static char * abbr(); static long delta(); ! static time_t hunt(); static int longest; static char * progname; static void show(); *************** *** 177,183 **** if (delta(&newtm, &tm) != (newt - t) || newtm.tm_isdst != tm.tm_isdst || strcmp(abbr(&newtm), buf) != 0) { ! hunt(argv[i], t, newt); (void) strncpy(buf, abbr(&newtm), (sizeof buf) - 1); } --- 177,184 ---- if (delta(&newtm, &tm) != (newt - t) || newtm.tm_isdst != tm.tm_isdst || strcmp(abbr(&newtm), buf) != 0) { ! newt = hunt(argv[i], t, newt); ! newtm = *localtime(&newt); (void) strncpy(buf, abbr(&newtm), (sizeof buf) - 1); } *************** *** 208,214 **** ; } ! static void hunt(name, lot, hit) char * name; time_t lot; --- 209,215 ---- ; } ! static time_t hunt(name, lot, hit) char * name; time_t lot; *************** *** 237,242 **** --- 238,244 ---- } show(name, lot, TRUE); show(name, hit, TRUE); + return hit; } /* =================================================================== RCS file: RCS/europe,v retrieving revision 7.5 retrieving revision 7.5.1.1 diff -c -r7.5 -r7.5.1.1 *** europe 1993/09/06 01:21:38 7.5 --- europe 1993/10/15 00:19:31 7.5.1.1 *************** *** 7,12 **** --- 7,16 ---- # ahead and edit the file (and please send any changes to # ado@ncifcrf.gov for general use in the future). + # A good source for time zone historical data outside the U.S. is + # Thomas G. Shanks, The International Atlas (3rd edition), + # San Diego: ACS Publications, Inc. (1991). + ############################################################################### # United Kingdom *************** *** 52,58 **** # 1921 3 April 3 October # 1922 26 March 8 October # 1923 22 April 16 September ! # 1924 30 April 21 September # 1925 to 3rd Sunday 1st Sunday # 1938 in April in October # --- 56,62 ---- # 1921 3 April 3 October # 1922 26 March 8 October # 1923 22 April 16 September ! # 1924 13 April 21 September # 1925 to 3rd Sunday 1st Sunday # 1938 in April in October # *************** *** 120,125 **** --- 124,139 ---- # # These dates agree with the ones from Whitaker's Almanac for 1960--87. . . + # From Paul Eggert (October 14, 1993) + # + # I changed the date `30 April 1924' to `13 April 1924' in the above table + # to fix what must be transcription error, since 30 April is not a Sunday, + # and Shanks gives 13 April which is a Sunday. + # + # The rules for Eire below are taken from Shanks, and reflect his claim that + # Eire changed the clock twice on 1 Oct 1916. I invented `IST' and `IDT' as + # abbreviations for Eire's standard and daylight time before 1 Oct 1916. + # From Arthur David Olson (January 19, 1989): # # A source at the British Information Office in New York avers that it's *************** *** 210,216 **** # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # 1916 to 1925--irregular ! Rule GB-Eire 1916 only - Mar 21 2:00s 1:00 BST Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT Rule GB-Eire 1917 only - Apr 8 2:00s 1:00 BST Rule GB-Eire 1917 only - Sep 17 2:00s 0 GMT --- 224,230 ---- # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # 1916 to 1925--irregular ! Rule GB-Eire 1916 only - May 21 2:00s 1:00 BST Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT Rule GB-Eire 1917 only - Apr 8 2:00s 1:00 BST Rule GB-Eire 1917 only - Sep 17 2:00s 0 GMT *************** *** 225,232 **** Rule GB-Eire 1922 only - Mar 26 2:00s 1:00 BST Rule GB-Eire 1922 only - Oct 8 2:00s 0 GMT Rule GB-Eire 1923 only - Apr 22 2:00s 1:00 BST ! Rule GB-Eire 1923 only - Oct 16 2:00s 0 GMT ! Rule GB-Eire 1924 only - Apr 30 2:00s 1:00 BST Rule GB-Eire 1924 only - Sep 21 2:00s 0 GMT # 1925 to 1939 start--regular Rule GB-Eire 1925 1939 - Apr Sun>=15 2:00s 1:00 BST --- 239,246 ---- Rule GB-Eire 1922 only - Mar 26 2:00s 1:00 BST Rule GB-Eire 1922 only - Oct 8 2:00s 0 GMT Rule GB-Eire 1923 only - Apr 22 2:00s 1:00 BST ! Rule GB-Eire 1923 only - Sep 16 2:00s 0 GMT ! Rule GB-Eire 1924 only - Apr 13 2:00s 1:00 BST Rule GB-Eire 1924 only - Sep 21 2:00s 0 GMT # 1925 to 1939 start--regular Rule GB-Eire 1925 1939 - Apr Sun>=15 2:00s 1:00 BST *************** *** 266,272 **** Rule GB-Eire 1960 only - Apr 10 2:00s 1:00 BST Rule GB-Eire 1961 1963 - Mar lastSun 2:00s 1:00 BST Rule GB-Eire 1964 1967 - Mar Sun>=19 2:00s 1:00 BST - Rule GB-Eire 1968 only - Feb 18 2:00s 1:00 BST Rule GB-Eire 1972 1980 - Mar Sun>=16 2:00s 1:00 BST # 1953 to 1980, ending rules Rule GB-Eire 1953 1960 - Oct Sun>=1 2:00s 0 GMT --- 280,285 ---- *************** *** 278,284 **** Rule GB-Eire 1981 max - Oct Sun>=23 1:00s 0 GMT # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] ! Zone GB-Eire 0:00 GB-Eire %s 1968 Oct 27 2:00s 1:00 - BST 1971 Oct 31 2:00s 0:00 GB-Eire %s --- 291,309 ---- Rule GB-Eire 1981 max - Oct Sun>=23 1:00s 0 GMT # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] ! Zone GB 0:00 - GMT 1916 May 21 2:00s ! 0:00 GB-Eire %s 1968 Feb 18 2:00s ! 1:00 - BST 1971 Oct 31 2:00s ! 0:00 GB-Eire %s ! Zone Eire -0:25 - IST 1916 May 21 2:00 ! -0:25 1:00 IDT 1916 Oct 1 2:00 ! 0:00 1:00 BST 1916 Oct 1 3:00 ! 0:00 GB-Eire %s 1940 Feb 25 2:00 ! 0:00 1:00 BST 1946 Oct 6 2:00 ! 0:00 - GMT 1947 Mar 16 2:00 ! 0:00 1:00 BST 1947 Nov 2 2:00 ! 0:00 - GMT 1948 Apr 18 2:00 ! 0:00 GB-Eire %s 1968 Feb 18 2:00s 1:00 - BST 1971 Oct 31 2:00s 0:00 GB-Eire %s