You are viewing a single thread.
View all comments
95 points

I don’t think 10000 year is a problem. There is a real “year 2038 problem” that affects system storing unix time in signed int32, but it’s mostly solved already. The next problem will be in year 33000 or something like that.

permalink
report
reply
51 points

There are so many problems there is an entire Wikipedia page dedicated to them.

permalink
report
parent
reply
14 points

Yes, there are random systems using every kind of smart or brain-dead option out there.

But the 2038 problem impacts the previous standard, and the current one will take ages to fail. (No, it’s not 33000, unless you are using some variant of the standard that counts nanoseconds instead of seconds. Those usually have more bits nowadays, but some odd older systems do it on the same 64 bits from the standard.)

permalink
report
parent
reply
1 point

I’m pretty certain most of my work inevitably ends up being related to a time issue

permalink
report
parent
reply
22 points

Well, I looked at a Year 10000 problem less than 2 hours ago. We’re parsing logs to extract the timestamp and for that, we’re using a regex which starts with:

\d{4}-\d{2}-\d{2}

So, we assume there to be 4 digits for the year, always. Can’t use it, if you live in the year 10000 and beyond, nor in the year 999 and before.

permalink
report
parent
reply
12 points

Just start over at year 0000 AT (after ten thousand)

permalink
report
parent
reply
6 points

The ISO time standard will certainly need to be redone

permalink
report
parent
reply
5 points

Do you think so? Surely, it’s able to handle dates before the year 999 correctly, so I’d also expect it to handle years beyond 10000. The \d{4} is just our bodged assumption, because well, I have actually never seen a log line with a year that wasn’t 4 digits…

permalink
report
parent
reply
12 points

It’s a UX problem rather than a date format problem at that point. Many form fields require exactly 4 digits.

permalink
report
parent
reply
7 points

It’s going to be significantly more than the year 33000 before we run out of 64-bit epoch timestamps.

The max value for signed 64-but epoch values is more than 292 billion years away, or 20 times the age of the universe itself.

So yeah, we’re basically solid forever with 64-bit

permalink
report
parent
reply
1 point
*

33,000 would come from other programs that store the year as a 16-bit signed int. Year 32,768, to be precise.

permalink
report
parent
reply
5 points

it’s mostly solved already

I wished I believe this. Or I guess I agree that it is solved in most software but there is lots of commonly used software where it isn’t. One broken bit of software can fairly easily take down a whole site or OS.

Try to create an event in 2040 in your favourite calendar. There is a decent chance it isn’t supported. I would say most calendar servers support it, but the frontends often don’t or vice-versa.

permalink
report
parent
reply
3 points
*

I’ve been curious about that myself. On one hand, it still seems far away. On the other hand, it’s a bit over 13 years away now and I have gear actively in use that’s older than that today.

permalink
report
parent
reply
5 points

Luckily I’ll be retired by then.

permalink
report
parent
reply
3 points

Is there an ELI5?

permalink
report
parent
reply
13 points
*

A common method of storing dates is the number of seconds since midnight on Jan 1, 1970 (which was somewhat arbitrarily chosen).

A 32-bit signed integer means it can store numbers between 231 through 231 - 1 (subtracting one comes from zero being effectively a positive number for these purposes). 231 - 1 seconds added to Jan 1, 1970 gets you to Jan 19, 2038.

The solution is to jump to 64-bit integers, but as with Y2K, there’s a lot of old systems that need to be updated to 64-bit integers (and no, they don’t necessarily have to have 64-bit CPUs to make that work). For the most part, this has been done already. That would put the date out to 292,277,026,596 CE. Which is orders of magnitude past the time for the sun to turn into a red giant.

permalink
report
parent
reply
2 points

Maybe it’s not LI5, but I certainly enjoy your explanation for including several important facts and context. I respect your skill and knowledge, dear internet stranger.

permalink
report
parent
reply
1 point

midnight on Jan 1, 1970 (which was somewhat arbitrarily chosen).

well not so much, as far as I remember the first end-user computers became available in 1971 or 1972 or something, and the internet also underwent some rapid developments in that time, so the date has a certain reasoning to it.

permalink
report
parent
reply
8 points

Unix computers store time in seconds that have passed since january first 1970. one there have been too many seconds since 1970, it starts breaking. ‘signed’ is a way to store negative numbers in binary. the basics of it are: when the leftmost bit is a 1, it’s a negative number (and then you do some other things to the rest of the number so that it acts like a negative number) so when there have been 09999999 seconds since 1970, if there’s one more second it’ll be 10000000, which a computer sees as -9999999.

permalink
report
parent
reply
1 point

I don’t think it will be a problem because it’s 8,000 years away lol, but people do store time in ISO 8601 strings.

permalink
report
parent
reply

memes

!memes@lemmy.world

Create post

Community rules

1. Be civil

No trolling, bigotry or other insulting / annoying behaviour

2. No politics

This is non-politics community. For political memes please go to !politicalmemes@lemmy.world

3. No recent reposts

Check for reposts when posting a meme, you can only repost after 1 month

4. No bots

No bots without the express approval of the mods or the admins

5. No Spam/Ads

No advertisements or spam. This is an instance rule and the only way to live.

Sister communities

Community stats

  • 12K

    Monthly active users

  • 2.7K

    Posts

  • 53K

    Comments