Re: End of Time, *nix Time

"Jon \"maddog\" Hall via Ale" <[email protected]> Tue, 28 Apr 2026 08:25:44 -0400
Newsgroups gmane.org.user-groups.ale
Message-ID <CAM7HF_09tCQWTyCJL9Yi2uCpLX1668cRBWHB9FRFqp-ZZQnTfQ@mail.gmail.com>
--===============2148827883034370461==
Content-Type: multipart/alternative; boundary="000000000000386ca806508455ea"

--000000000000386ca806508455ea
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Quite frankly at the age of 75, diabetic,  three heart attacks and only 26%
of my heart capacity left I do not think I have to worry about this.

But it was fun reading about it anyway.=F0=9F=98=9C

On Sat, Apr 25, 2026, 23:54 Bob Toxen via Ale <[email protected]> wrote:

> I've just uploaded the new and improved code to my web site so please
> download again and email just me ([email protected]) if you
> get any more compiler warnings or strange results to be addressed.
>
> This new version improves the messages to be less cryptinc but the
> program does assume you know something about how time is handled in
> *nix.  The short answer is that if you have the old signed 32-bit
> time_t type then the largest year you will see will be 2038 in
> output of the form "Day-of-week Month Day ##:##:## Year".
>
> If you get a reference from Hitchhiker's Guide to the Galaxy then
> you have the new 64-bit time_t type and you should be good for the
> next two billion years.
>
> Please send me comments to address.
>
> Bob
>
> On Sat, Apr 25, 2026 at 02:38:03PM -0400, Jeff Lightner via Ale wrote:
> > This made me think of my annoyance at logs for some apps that did
> > epoch timestamps.  More than once I wrote a script to calculate human
> > readable time as it displayed lines from such logs.  I???m sure there
> > are some who can eyeball epoch and convert it mentally to star date and
> > other clock/calendar systems but I wasn???t one of them.  > Which also
> > made me think of the fact that some logs are in UTC rather than local
> > time zone time.  At least I could do that conversion in my head.
>
> > Back when we tested for Y2K bugs many of us who were UNIX admins
> > also tested for future dates against the 32 bit limit and other factors=
.
> > I often thought it odd that most UNIX platforms already did 64 bit
> whereas
> > many Linux distros didn???t even if they were on a 64 bit processor.
>
> > From: Ale <[email protected]> On Behalf Of Ron via Ale
> > Sent: Saturday, April 25, 2026 1:29 PM
> > To: [email protected]
> > Cc: Ron <[email protected]>
> > Subject: Re: [ale] End of Time, *nix Time
> >
> >
> >
> > Bob Toxen via Ale wrote on 2026-04-24 19:43:
> >
> >   # Download this program:
> >   wget http://verysecurelinux.com/xtime.c
> >   # Compile:
> >   make xtime
> >   # Run:
> >   ./xtime -q
> >
> > I downloaded an compiled this.
> >
> > Lots of warnings when running `make`, but it compiled.
> >
> > What am I to make of the output? I can make no sense of it.
> >
> >
> >
> > $ ./xtime -q
> > Copyright (c) Bob Toxen 2026.  All rights reserved.
> >
> > This program will analyze your *nix for the well-known bug if the
> > seconds since 01/01/1970 exceeds a signed 32 bit (4-byte) integer.
> > If it outputs abnormal output for years beyond 2038 then your computer
> > will fail at that time, about 12 years from now.
> >
> > Many *nix systems were fixed decades ago so that this variable became
> > an unsigned 32-bit int, which can keep time until 2106.
> > More recently most systems went to a signed 64-bit int.
> >
> > Note that most Unix and Linux distributions corrected the time
> > problem by approximately 2014 to work until 2106 (using an unsigned
> > 32-bit number) or well beyond if using a 64-bit number but maybe the co=
de
> > will fail before the largest 64-bit signed (292,271,022,989 years)
> > or unsigned number is exceeded.
> >
> >
> > If it is not fixed in your version, well, good luck.
> >
> > sizeof char=3D1, sizeof short=3D2, sizeof int=3D4, sizeof long=3D8, siz=
eof long
> long=3D8, sizeof time_t=3D8
> >
> > Current years and seconds since the epoch: 56 1777137911
> >   seconds/year:31536000, seconds/year including leap year:31557600,
> delta seconds:21600, delta hours:6
> >
> > Biggest   signed 4-byte long: years inc=3D            0, years in the
> future=3D           11, Mon Jan 18 19:14:07 2038
> > Biggest unsigned 4-byte long: years inc=3D            0, years in the
> future=3D           79, Sat Feb  6 22:28:15 2106
> >
> > Time: years inc=3D            1, years in the future=3D   2147437525, W=
ed
> Jun 12 15:25:11 2147483647
> >
> > Welcome to the Restaurant at the end of the universe.  Hello, your
> Majesty.
> >
> > Biggest   signed 8-byte long: years inc=3D            0, years in the
> future=3D 292271022988,
> > ERROR: Invalid seconds since Epoch in localtime
> > Error code: Value too large for defined data type
> >
> > Biggest unsigned 8-byte long: years inc=3D            0, years in the
> future=3D          -56, Wed Dec 31 15:59:59 1969
> >
> >
> >
>
> > _______________________________________________
> > Ale mailing list
> > [email protected]
> > https://mail.ale.org/mailman/listinfo/ale
> > See JOBS, ANNOUNCE and SCHOOLS lists at
> > http://mail.ale.org/mailman/listinfo
>
> _______________________________________________
> Ale mailing list
> [email protected]
> https://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo
>

--000000000000386ca806508455ea
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Quite frankly at the age of 75, diabetic,=C2=A0 three hea=
rt attacks and only 26% of my heart capacity left I do not think I have to =
worry about this.<div dir=3D"auto"><br></div><div dir=3D"auto">But it was f=
un reading about it anyway.=F0=9F=98=9C</div></div><br><div class=3D"gmail_=
quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, =
Apr 25, 2026, 23:54 Bob Toxen via Ale &lt;<a href=3D"mailto:[email protected]">al=
[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I&#39;ve=
 just uploaded the new and improved code to my web site so please<br>
download again and email just me ([email protected]) if you<br>
get any more compiler warnings or strange results to be addressed.<br>
<br>
This new version improves the messages to be less cryptinc but the<br>
program does assume you know something about how time is handled in<br>
*nix.=C2=A0 The short answer is that if you have the old signed 32-bit<br>
time_t type then the largest year you will see will be 2038 in<br>
output of the form &quot;Day-of-week Month Day ##:##:## Year&quot;.<br>
<br>
If you get a reference from Hitchhiker&#39;s Guide to the Galaxy then<br>
you have the new 64-bit time_t type and you should be good for the<br>
next two billion years.<br>
<br>
Please send me comments to address.<br>
<br>
Bob<br>
<br>
On Sat, Apr 25, 2026 at 02:38:03PM -0400, Jeff Lightner via Ale wrote:<br>
&gt; This made me think of my annoyance at logs for some apps that did<br>
&gt; epoch timestamps.=C2=A0 More than once I wrote a script to calculate h=
uman<br>
&gt; readable time as it displayed lines from such logs.=C2=A0 I???m sure t=
here<br>
&gt; are some who can eyeball epoch and convert it mentally to star date an=
d<br>
&gt; other clock/calendar systems but I wasn???t one of them.=C2=A0 &gt; Wh=
ich also<br>
&gt; made me think of the fact that some logs are in UTC rather than local<=
br>
&gt; time zone time.=C2=A0 At least I could do that conversion in my head.<=
br>
<br>
&gt; Back when we tested for Y2K bugs many of us who were UNIX admins<br>
&gt; also tested for future dates against the 32 bit limit and other factor=
s.<br>
&gt; I often thought it odd that most UNIX platforms already did 64 bit whe=
reas<br>
&gt; many Linux distros didn???t even if they were on a 64 bit processor.<b=
r>
<br>
&gt; From: Ale &lt;<a href=3D"mailto:[email protected]" target=3D"_blank"=
 rel=3D"noreferrer">[email protected]</a>&gt; On Behalf Of Ron via Ale<br=
>
&gt; Sent: Saturday, April 25, 2026 1:29 PM<br>
&gt; To: <a href=3D"mailto:[email protected]" target=3D"_blank" rel=3D"noreferrer=
">[email protected]</a><br>
&gt; Cc: Ron &lt;<a href=3D"mailto:[email protected]" target=3D"_blank" rel=3D"n=
oreferrer">[email protected]</a>&gt;<br>
&gt; Subject: Re: [ale] End of Time, *nix Time<br>
&gt; <br>
&gt;=C2=A0 <br>
&gt; <br>
&gt; Bob Toxen via Ale wrote on 2026-04-24 19:43:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0# Download this program:<br>
&gt;=C2=A0 =C2=A0wget <a href=3D"http://verysecurelinux.com/xtime.c" rel=3D=
"noreferrer noreferrer" target=3D"_blank">http://verysecurelinux.com/xtime.=
c</a><br>
&gt;=C2=A0 =C2=A0# Compile:<br>
&gt;=C2=A0 =C2=A0make xtime<br>
&gt;=C2=A0 =C2=A0# Run:<br>
&gt;=C2=A0 =C2=A0./xtime -q<br>
&gt; <br>
&gt; I downloaded an compiled this.<br>
&gt; <br>
&gt; Lots of warnings when running `make`, but it compiled.<br>
&gt; <br>
&gt; What am I to make of the output? I can make no sense of it.<br>
&gt; <br>
&gt;=C2=A0 <br>
&gt; <br>
&gt; $ ./xtime -q<br>
&gt; Copyright (c) Bob Toxen 2026.=C2=A0 All rights reserved.<br>
&gt; <br>
&gt; This program will analyze your *nix for the well-known bug if the<br>
&gt; seconds since 01/01/1970 exceeds a signed 32 bit (4-byte) integer.<br>
&gt; If it outputs abnormal output for years beyond 2038 then your computer=
<br>
&gt; will fail at that time, about 12 years from now.<br>
&gt; <br>
&gt; Many *nix systems were fixed decades ago so that this variable became<=
br>
&gt; an unsigned 32-bit int, which can keep time until 2106.<br>
&gt; More recently most systems went to a signed 64-bit int.<br>
&gt; <br>
&gt; Note that most Unix and Linux distributions corrected the time<br>
&gt; problem by approximately 2014 to work until 2106 (using an unsigned<br=
>
&gt; 32-bit number) or well beyond if using a 64-bit number but maybe the c=
ode<br>
&gt; will fail before the largest 64-bit signed (292,271,022,989 years)<br>
&gt; or unsigned number is exceeded.<br>
&gt; <br>
&gt; <br>
&gt; If it is not fixed in your version, well, good luck.<br>
&gt; <br>
&gt; sizeof char=3D1, sizeof short=3D2, sizeof int=3D4, sizeof long=3D8, si=
zeof long long=3D8, sizeof time_t=3D8<br>
&gt; <br>
&gt; Current years and seconds since the epoch: 56 1777137911<br>
&gt;=C2=A0 =C2=A0seconds/year:31536000, seconds/year including leap year:31=
557600, delta seconds:21600, delta hours:6<br>
&gt; <br>
&gt; Biggest=C2=A0 =C2=A0signed 4-byte long: years inc=3D=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 0, years in the future=3D=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A011, Mon Jan 18 19:14:07 2038<br>
&gt; Biggest unsigned 4-byte long: years inc=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 0, years in the future=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A079, Sat Feb=C2=A0 6 22:28:15 2106<br>
&gt; <br>
&gt; Time: years inc=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1, years i=
n the future=3D=C2=A0 =C2=A02147437525, Wed Jun 12 15:25:11 2147483647<br>
&gt; <br>
&gt; Welcome to the Restaurant at the end of the universe.=C2=A0 Hello, you=
r Majesty.<br>
&gt; <br>
&gt; Biggest=C2=A0 =C2=A0signed 8-byte long: years inc=3D=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 0, years in the future=3D 292271022988,<br>
&gt; ERROR: Invalid seconds since Epoch in localtime<br>
&gt; Error code: Value too large for defined data type<br>
&gt; <br>
&gt; Biggest unsigned 8-byte long: years inc=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 0, years in the future=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -=
56, Wed Dec 31 15:59:59 1969<br>
&gt; <br>
&gt;=C2=A0 <br>
&gt; <br>
<br>
&gt; _______________________________________________<br>
&gt; Ale mailing list<br>
&gt; <a href=3D"mailto:[email protected]" target=3D"_blank" rel=3D"noreferrer">Al=
[email protected]</a><br>
&gt; <a href=3D"https://mail.ale.org/mailman/listinfo/ale" rel=3D"noreferre=
r noreferrer" target=3D"_blank">https://mail.ale.org/mailman/listinfo/ale</=
a><br>
&gt; See JOBS, ANNOUNCE and SCHOOLS lists at<br>
&gt; <a href=3D"http://mail.ale.org/mailman/listinfo" rel=3D"noreferrer nor=
eferrer" target=3D"_blank">http://mail.ale.org/mailman/listinfo</a><br>
<br>
_______________________________________________<br>
Ale mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank" rel=3D"noreferrer">Ale@ale=
.org</a><br>
<a href=3D"https://mail.ale.org/mailman/listinfo/ale" rel=3D"noreferrer nor=
eferrer" target=3D"_blank">https://mail.ale.org/mailman/listinfo/ale</a><br=
>
See JOBS, ANNOUNCE and SCHOOLS lists at<br>
<a href=3D"http://mail.ale.org/mailman/listinfo" rel=3D"noreferrer noreferr=
er" target=3D"_blank">http://mail.ale.org/mailman/listinfo</a><br>
</blockquote></div>

--000000000000386ca806508455ea--

--===============2148827883034370461==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Ale mailing list
[email protected]
https://mail.ale.org/mailman/listinfo/ale
See JOBS, ANNOUNCE and SCHOOLS lists at
http://mail.ale.org/mailman/listinfo

--===============2148827883034370461==--