Spyke
sh.itjust.works

In every project I've ever worked on, there's been somebody who must have been like, "HurDur Storing timestamps in UTC is for losers. Nyeaahh!"

And if I ever find that person, I'm going to get one of those foam pool noodles, and whack him/her over the head with it until I've successfully vented all my frustrations.

14
lemmy.world

I just use a float between 0 and 1 with 0 being 1970 and 1 being the predicted heat death of the universe.

16

It’ll lose most of its accuracy long after all life stops existing, so nobody will be around to file bug tickets.

2
48954246reply
lemmy.world

The only time using UTC breaks down is when any sort of time change gets involved.

If I say I want a reminder at 9am six months from now and you store that as UTC, a day light savings change will mean I get my reminder an hour early or late depending on where in the world I am

3
lemm.ee

But wouldn't you calculate the time in the future in the right time zone and then store it back as UTC?

8

So TL;DR: there might be unexpected time zone rule changes in the future. The solution presented in the article is to store both UTC and local time, so the application can easily adjust itself if such change happens.

5

Yeah that's a different shitshow but agreed it is likely to be worse - like y2k the effects are smeared out before and after the date.

10
Robmartreply
lemm.ee

32bit systems will stop working. The Unix timestamp, which increases by 1 every second and started the first second of 1970, will reach the max of 32 bit integers. Bad things will follow.

5

This has already been patched on all 64 bit OSes though - whatever 32 bit systems are still in existence in another 15 years will just roll their dates back 50 years and add another layer of duct tape to their jerry-rigged existence

9
018118055reply
sopuli.xyz

2100 not a leap year (divisible by 100). 2400 is a leap year (divisible by 400). Developing for dates is a minefield.

14
deegeesereply
sopuli.xyz

Nah.

Same thing happened in 2000 and it was a mouse’s fart.

1
018118055reply
sopuli.xyz

Because of months of preparation. I know, I was doing it.

15
deegeesereply
sopuli.xyz

And now that every time library has been updated, we're safe until our grandchildren reimplement those bugs in a language that has not yet been invented.

2
018118055reply
sopuli.xyz

I've already seen reimplementation of 2 digit dates here and there.

5
018118055reply
sopuli.xyz

Fortunately I will not be involved. Hopefully I can make something from 2038 though.

3

You’re not the only one forseeing a nice consultant payday there.

2

I went to uni in the mid 90s when Y2K prep was all the rage, went back to do another degree 20 years later. It was interesting to see the graffiti in the CS toilets. Two digits up to about 1996, four digits for a decade, then back to two.

3
lemmy.world

Won’t the computer’s clock reset every time you go to sleep and stop cranking the power generator?

1
feddit.it

Programming aside, where I live in Southern Europe we have a tradition according to which leap years bring bad luck. After 2020, I don't know what to expect... nuclear apocalypse maybe?

11
lemmy.world

Always, always, always, without taking any shortcuts, use a tzinfo library for your language.

10

I'm not worried about my code, I'm (very slightly) worried about all the date libraries I used because I didn't want code that shit again for the billionth time.

6
lemm.ee

Your comment made me go look at the source for moment.js. It has "leap" 13 times and the code looks correct. I assume they test stuff like this.

6

Yeah, I'm generally using the common data/time libraries in most (if not all) languages and I'm pretty sure they've all been through more than 1 leap year at this point. I just never 100% trust the code I don't control - 99.9% maybe, but never 100.

3

I just never 100% trust the code I don't control

I never 100% trust the code I do control. Partially because a lot of it is inherited but also because I know corners were cut but I can't always remember when and where

3