> Did other languages handle it better? Is this a Java problem or is this a "Governments changing timezone information all the time is hard" problem?
Java is peculiarly annoying in that it doesn't use the normal tzdata database, it has its own copy of the database, with its own separate updating procedure. Even when it's the openjdk package on a Linux distribution, you often have a "tzdata" package (used by everything else) and a "tzdata-java" package (used exclusively for the JVM).
So yeah, cross platform is hard and this was their implementation of it? How do other languages handle this cross platform use case? I'm just being pragmatic here and less dogmatic. They chose to manage their own tz records so that the host is could be broken to high hell and theirs would still work. My assumption of this is having to support N different is and arch differences that made this non-trivial when they adopted it. Maybe now there are easier paths to take, so I suppose patches welcome?
Java is peculiarly annoying in that it doesn't use the normal tzdata database, it has its own copy of the database, with its own separate updating procedure. Even when it's the openjdk package on a Linux distribution, you often have a "tzdata" package (used by everything else) and a "tzdata-java" package (used exclusively for the JVM).