Hacker News new | ask | show | jobs
by aidenn0 1773 days ago
Because we want to unambiguously refer to times in the future?

[edit]

It would of course have been possible to have NTP be based of of TAI rather than UTC (and that might have been a good idea), but it still begs the question of what any POSIX operating system will do given that posix timestamps are leap-second adjusted. And the reason that POSIX timestamps are leap-second adjusted is so that 2628198843 has always, and will always represent 2053-04-13T23:14:03Z. For better or worse, humans have standardized on UTC, so machines that expect to interact with humans must also do so.

1 comments

I would argue UTC timestamps are still ambiguous, just in a different way.

How many seconds between now and 2038-01-01T00:00:00?

It's impossible to say because we can't predict future leap seconds.

Many uses of future times are always going to be ambiguous because humans care about timezones, which can change at any time.

That’s not ambiguous though. The answer is, unambiguously, that we don’t know how many seconds there will be. But we can still agree to meet at that time, assuming we will both continue using the same time standard.
I get OPs point though - coming from an outsiders perspective I would have thought that a key feature of a time format would be to know how much time there is between two other times.
The standard for communicating time between humans lacks this feature for times more than a year in the future. That computers (which interface with humans) implement this standard faithfully is a feature, not a bug.
I agree it should be implemented but it could be implemented differently. Just like zoned datetimes are represented as a UTC time + timezone. UTC could be represented as TAI timestamp + leap seconds.
That is true, but again humans.

Humans will be less bothered by you being off by 10s of seconds for "how many seconds until X" where X is multiple years in the future than they will be where X is a minute in the future. Any timestamp created today may be used far in the future, but durations are (by their very nature) transient. Even if you were to do a sleep(nominal seconds until 2038) the computer is likely to reboot before the interval expires, mooting any issues.