From: Achim Gratz <Stromeko@nexgo.de>
To: emacs-devel@gnu.org
Subject: Re: Represent NTP's origin time
Date: Sat, 17 Apr 2021 15:44:28 +0200 [thread overview]
Message-ID: <8735vpyqir.fsf@Rainer.invalid> (raw)
In-Reply-To: 87o8efcqfh.fsf@Rainer.invalid
Achim Gratz writes:
> Stefan Monnier writes:
>> NTP represents time stamps by counting seconds from January 1 1900, but
>> my Emacs doesn't seem to be able to represent this:
>>
>> (encode-time (parse-time-string "1902-01-01T00:00-00:00"))
>> => (-32745 59520)
>> (encode-time (parse-time-string "1900-01-01T00:00-00:00"))
>> => (error "Specified time is not representable")
>>
>> Do we have some "standard" workaround?
>
> Get off your 32bit system already?
There have been responses that called this answer "unkind" or "snarky".
It wasn't meant to be, I apologise for the impression that was likely
created by being too brief. I stand by what I said, though: The
standard workaround is to do whatever you were trying to do on a system
with a 64bit time_t instead.
Indeed that very problem is what drove me off my own 32bit installation
a few years ago and other than the time spent to figure out how to
convert the system without a full re-installation (which probably would
have taken less time, all things considered) I have no regrets about
doing that.
One of the workarounds (or really limp-alongs) that I've used before
that was using the difference of 2,208,988,800 seconds between UNIX and
NTP epoch (as mentioned in another answer already) that is documented in
many places, for instance here:
https://www.eecis.udel.edu/~mills/y2k.html
That works for the majority of cases (in particular all "real" NTPv3
time stamps ever produced) on all systems that I've worked on. It
doesn't change the fact that dates before the UNIX epoch can not be
represented with an unsigned 32bit time_t (does Emacs still run on any
systems that do this?) and a signed one peters out at
1901-12-13T20:45:52+00:00 when looking back from the epoch. Outside the
"NTP prime era" you'd have to keep track of the era/epoch seperately and
that's just the start of your troubles then.
Regards,
Achim.
--
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+
Factory and User Sound Singles for Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds
next prev parent reply other threads:[~2021-04-17 13:44 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-15 4:00 Represent NTP's origin time Stefan Monnier
2021-04-15 8:06 ` Andreas Schwab
2021-04-15 8:22 ` Gregory Heytings
2021-04-15 8:27 ` Ulrich Mueller
2021-04-15 8:30 ` Eli Zaretskii
2021-04-15 12:40 ` Stefan Monnier
2021-04-15 12:56 ` Andreas Schwab
2021-04-15 13:39 ` Stefan Monnier
2021-04-15 13:41 ` Ulrich Mueller
2021-04-15 13:44 ` Stefan Monnier
2021-04-15 14:06 ` Gregory Heytings
2021-04-15 14:51 ` Stefan Monnier
2021-04-15 19:12 ` Achim Gratz
2021-04-16 7:06 ` tomas
2021-04-17 3:53 ` Richard Stallman
2021-04-17 7:30 ` tomas
2021-04-17 13:44 ` Achim Gratz [this message]
2021-04-17 14:09 ` tomas
2021-04-17 14:23 ` Stefan Monnier
2021-04-17 14:55 ` Achim Gratz
2021-04-17 15:27 ` tomas
2021-04-17 16:20 ` Achim Gratz
2021-04-17 16:54 ` [OFFTOPIC] " Stefan Monnier
2021-04-17 20:00 ` tomas
2021-04-17 20:31 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8735vpyqir.fsf@Rainer.invalid \
--to=stromeko@nexgo.de \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.