
On 2021-04-23 01:37, Guy Harris via tz wrote:
On Apr 22, 2021, at 11:22 PM, Manuela Friedrich via tz wrote:
please find the tracing output attached. I have only kept the first 136 lines believing it provides enough information.
d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan -9223372036854775808 = NULL
Is zdump linked with the rest of the tz code, or is it only linked with the Visual Studio C library?
If it's only linked with the Visual Studio C library, so that the localtime() that zdump calls is the Visual Studio C library's localtime(), rather than the tz code's localtime(), then it Will Not Work for any time before January 1, 1970, 00:00:00 UTC - localtime() in the Visual Studio C library returns NULL for all such date/time values:
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/localtime-l... As long as you are using 64 bit time functions, with limits from
1970-01-01 00:00:00+0000 @0 ... 3000-12-31 23:59:59+0000 @32535215999 you can work around that, using a 400 year offset to get the time within the supported range: $ date -ud '1970-01-01 00:00:00+0000 + 400 years' +@%s @12622780800 GNU date and related functions should be good between the range (and some months and days): $ date -ud '1970-01-01 00:00:00+0000 - 2147483718 years' +%c%z\ @%s -2147481748 Jan 01 Mon 00:00:00+0000 @-67768040609740800 # - 2^31+70 yr $ date -ud '1970-01-01 00:00:00+0000 + 2147481677 years' +%c%z\ @%s 2147483647 Jan 01 Tue 00:00:00+0000 @67767976201996800 # + 2^31-1971 yr -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada This email may be disturbing to some readers as it contains too much technical detail. Reader discretion is advised. [Data in binary units and prefixes, physical quantities in SI.]