Thom Hehl wrote:
2661690496, 2693140096, 2759063296, ...
You've interpreted a signed 32-bit field as unsigned. 2661690496 is really -1633276800, which is 1918-03-31T08:00:00Z, which corresponds to Rule US 1918 1919 - Mar lastSun 2:00 1:00 D in 1918 with a -6:00 standard offset as called for by Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58 -6:00 US C%sT 1921 and similarly for the others. tzfile(5) says the field is "of type long", which in C is implicitly a signed type; unsigned would have to be explicitly stated. You might find the 64-bit version of the offsets clearer, where instead of the 0x9ea62c80 that you're misinterpreting you'll see 0xffffffff9ea62c80. -zefram