I probably should've just skipped trying to make the time analogy as it is more nuanced as you point out. Or maybe I should've just pointed out that storing in UTC doesn't mean you shouldn't store the offset/region/sub-region etc. I assumed when I said conversion for the display that it would be obvious you need those to make it happen, but I guess people could think I meant to use the browser's tz setting for display/actions (yikes).
But to point out an example, Postgres (and most major DB's today) store all timestamptz as UTC internally with the region code they use for offset calculations. At least for postgres the region code and offset are taken from the IANA DB.
Essentially what I have done, many times, on complex systems is the same thing Postgres is doing just under our applications control and not relying on a specific databases implementation of conversions. This made it easier for us to ship data around between systems without having to care whether those systems had good timezone support. We then had libraries in each language that would handle all the proper conversions/lookups. Meaning (and using your example) if we needed to update future dates for Turkey, we could issue a query to do so and be done. This eliminates having to wait for Postgres to get updates from IANA, update, test and release and then we do the same. Not to mention you need to multiply that by X number of other systems which have their own TZ conversions at that point if you aren't doing it. And then what happens if one gets it wrong or is late to update.
There are many times this just isn't necessary of course, small systems, systems that are only regional, systems where time isn't a critical component etc. But for systems where time crosses many regions and is critical, or is a legal record or triggers an action it becomes more and more important.
FWIW too: A number of US states have passed laws to go to DST only, so no more switching in those either. They are just waiting on the federal government to pass the resolution allowing it (apparently states can opt for standard time but not DST without approval). When that happens a number of America/XXX regions will need to be split up in IANA. For example, America/New_York currently covers Florida but that would have to change.
But to point out an example, Postgres (and most major DB's today) store all timestamptz as UTC internally with the region code they use for offset calculations. At least for postgres the region code and offset are taken from the IANA DB.
Essentially what I have done, many times, on complex systems is the same thing Postgres is doing just under our applications control and not relying on a specific databases implementation of conversions. This made it easier for us to ship data around between systems without having to care whether those systems had good timezone support. We then had libraries in each language that would handle all the proper conversions/lookups. Meaning (and using your example) if we needed to update future dates for Turkey, we could issue a query to do so and be done. This eliminates having to wait for Postgres to get updates from IANA, update, test and release and then we do the same. Not to mention you need to multiply that by X number of other systems which have their own TZ conversions at that point if you aren't doing it. And then what happens if one gets it wrong or is late to update.
There are many times this just isn't necessary of course, small systems, systems that are only regional, systems where time isn't a critical component etc. But for systems where time crosses many regions and is critical, or is a legal record or triggers an action it becomes more and more important.
FWIW too: A number of US states have passed laws to go to DST only, so no more switching in those either. They are just waiting on the federal government to pass the resolution allowing it (apparently states can opt for standard time but not DST without approval). When that happens a number of America/XXX regions will need to be split up in IANA. For example, America/New_York currently covers Florida but that would have to change.