Alt text:
It’s not just time zones and leap seconds. SI seconds on Earth are slower because of relativity, so there are time standards for space stuff (TCB, TGC) that use faster SI seconds than UTC/Unix time. T2 - T1 = [God doesn’t know and the Devil isn’t telling.]
We use datediff in sql and let God handle the rest.
“Oh but they’re in different time zones” “Oh did you account for if one is in day light savings and other isn’t” “Aren’t some of these dates stored in UTC and some local?”
Are all problems I do not care about.
This is why we should just move to a universal time zone and stop with the day light savings.
We have that, it’s called Unix time, and the only thing it doesn’t account for is time dilation due to relativity.
If your system hasn’t been upgraded to 64-bit types by 2038, you’d deserve your overflow bug
LOL whenever I have to work with DateTime systems that try to account for every possibility (and fail trying) I am reminded that in some disciplines, it’s acceptable to simplify drastically in order to do ‘close enough’ work.
I mean, if spherical cows are a thing because that makes the math of theoretical physics doable, why not relativity-free or just frame-constant date-time measures that are willing to ignore exotic edge cases like non-spherical livestock?
Because “relativity” isn’t even close to your biggest problem with time. The way we communicate time changes historically, unpredictably, without obvious record. The only way to know what time you’re talking about is to know exactly how you got your information. What location, measured at what time relative to recorded changes in the local time zone, with how much drift relative to the last time you synchronized to which ntp server, and so on. These things easily account for hours or days of error, not just nanoseconds.
I got to “The day before Saturday is always Friday” and I was like waaaa?
I thought it is about when Julian calendar was dropped in favour of Gregorian, but that’s not it:
Thursday 4 October 1582 was followed by Friday 15 October 1582
I really wish that list would include some explanations about why each line is a falsehood, and what’s actually true. Particularly the line:
The software will never run on a space ship that is orbiting a black hole.
If the author has proof that some software will run on a space ship that is orbiting a black hole, I’d be really interested in seeing it.
All links to the original article are dead and even archive.org doesn’t have a capture either. I guess the argument is along the lines of “it might not be relevant, when you’re scripting away some tasks for your small personal projects, but when you’re working on a widely used library or tool - one day, it might end up on a space vessel to explore whatever.”
E.g. my personal backup script? Unlikely. The Linux kernel? Somewhat plausible.
It’s a programmer thing. As you’re typing the code, you may suddenly realize that the program needs to a assume certain things to work properly. You could assume that time runs at a normal rate as opposed to something completely wild when traveling close to the speed of light or when orbiting a black hole.
In order to keep the already way too messy code reasonably simple, you decide that the program assumes you’re on Earth. You leave a comment in the relevant part of the code saying that this part shouldn’t break as long as you’re not doing anything too extreme.
Does anyone know what is untrue about “Unix time is the number of seconds since Jan 1st 1970.”?
When a leap second happens, unix time decreases by one second. See the section about leap seconds here: https://en.m.wikipedia.org/wiki/Unix_time
As a side effect, this means some unix timestamps are ambiguous, because the timestamps at the beginning and the end of a leap second are the same.
It might be more accurate to say that Unix time is the number of days since Jan 1st, 1970, scaled by 24×60×60. Though it gets a bit odd around the actual leap second since they aren’t spread over the whole day. (In some ways that would be a more reasonable way to handle it; rather than repeating a second at midnight, just make all the seconds slightly longer that day.)
This one is good (or evil, depends on how you see it):
Human-readable dates can be specified in universally understood formats such as 05/07/11.
That’s me in the bottom right corner over there.