4 ms·
Java 1.0 (also released in '95) had the same behaviour. Java itself borrowed it from `struct tm` in libc, which has the same behaviour from back then up until t
by porridgeraisin 1y ago
Java 1.0 (also released in '95) had the same behaviour. Java itself borrowed it from `struct tm` in libc, which has the same behaviour from back then up until today. It was standard back then. Whether we like it or not (I don't) doesn't change that fact. And like I said, nothing is more important than backwards compatibility.
It is just programmer education to know to add 1900 to years when using struct tm and also to use getFullYear() in JS.
- wewtyflakes 1y agoWhy is nothing more important than backwards compatibility between disparate languages written in different contexts for different contexts?
- porridgeraisin 1y agoThat javascript chose to offset from 1900 was simply because every system back then used to, including Java. Once that had been done, future versions of javascript had to maintain the same behaviour. This is where I'm using the backwards compatibility argument.
- wewtyflakes 1y agoSeems like JS could have called it `getYearOffset1900`, or `getYearOffet`, etc, rather than `getYear`.
- porridgeraisin 1y agoAgreed. What I've read is that they basically duplicated the Java API, which had getYear() I suppose the offset method was really quite entrenched so no one thought to special case that function, instead special casing the "2025" returning getFullYear()