> The general arch of tooling is that the tools evolve to be more useful in the world, not that we change the world to suit our tools better.
In general yes, but for the entirety of our field, dealing with time zones has been painful, and the way time zones are setup, it will continue to be painful into perpetuity.
Random governments changing time zones, and DST dates, whenever they want, makes for a headache. Dealing with DST and time zones, a major headache. There is no eloquent way to do it, meaning that all code that deals with time across more than one geographic area, ends up having bugs.
> I wonder how much money would be lost to putting together the system that will have to replace time zones because people will still have the problems that time zones fix
24 hour time, print signs out accordingly.
Instead of businesses typically being open for lunch from 1100 to 1300 local time, they'll be open for whatever time people feel like lunch.
And Daylight Savings needs to die, it has already been shown that it is actively detrimental to people's health[0], and places of business that care about daylight hours end up adjusting their operating hours on top of the DST change! Get rid of DST, and businesses will have to shift their "Open until" sign by 2 hours instead of 1.
Properly doing time zones is insane. To do it 100% accurately and automatically in today's mobile world is even harder. A phone's time zone can shift during the middle of app usage, and DST can shift if the user drives down the road a bit!
Every platform has to implement a way of getting updated time zone definition files, and apps running have to then be aware that the definitions of time zones has just changed. Most often not a problem, but it a hell of an edge case.
Indeed everything about handling time is just a bunch of edge cases. The base case works well enough: get time in UTC, translate to local time. Things not in the base case suck.
For example, appointments on a calendar, the UTC time of appointments moves backwards by an hour when DST hits to keep appointments at the same local time.
What do you do when participates are in multiple time zones and some have DST and some don't? How do you get everyone to meet at the same time?
What about events that are absolute in time, that ignore DST? How do you know not to move them? (Checkboxes? lovely!)
What format do you store appointments in? Local time? Makes it easy to handle the DST shifts, but it is otherwise bad mojo. UTC is the go to, and then store a field of what time zone the appointment was originally created in, check what its DST setting is on any given day, do the math, and place on the user's local calendar accordingly.
That is one strategy, there are others. They all have trade offs.
[0]https://www.cnn.com/2016/03/11/health/daylight-saving-time-h...