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(a)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