Remix.run Logo
Aloisius 3 days ago

The reason why certain cities get entries is because sometime after time began (1970-01-01), the region they're in changed their timezone (usually adopting or dropping DST or changing when it began). Those changes need to be recorded in the timezone database. The largest city in the affected area is typically chosen to be representative of the area.

Boise has its own entry because in 1974, the Emergency Daylight Time Act shifted when DST began in Southern Idaho and eastern Oregon. Boise is the largest city in the region.

Technically, if you're in Salt Lake City, you should be using America/Denver, not Boise because of this, otherwise if you say, opened a calendar from 1974, everything will be off by an hour.

If Utah made DST there begin a day earlier this year, Salt Lake City would probably get an entry too.

skissane 3 days ago | parent | next [-]

I think for the US, they should ensure tzdata contains at least one city for every state. That’s what they do for Australia. Now, it so happens their current rules-only add city if in recent decades it had distinct time zone rules-happen to produce that outcome for Australia, because in Australia time is a state issue and historically every state decided for itself whether to have daylight savings and when to begin/end it. Still, I think they should amend their rules to say “capital and/or largest city for every first-level subdivision of major countries”, given some reasonably objective definition of “major” (e.g. G20 nations)

fanf2 3 days ago | parent | next [-]

The problem in the US is that time zone boundaries very frequently do not match state boundaries.

It’s common for major cities to be located on rivers that are state boundaries, the area around the city uses the same timezone, and one of the states has a timezone boundary in the middle. Indiana has many tz database entries because of this kind of thing.

There are other fun cases like the Navajo Nation in Arizona.

dpifke 2 days ago | parent | next [-]

14 states have more than one time zone[0].

I live in South Dakota, which is one of them—the Mountain/Central timezone boundary within the state follows the Missouri river. (Locals refer to "East River" and "West River" to refer to the two halves of the state. The capital, Pierre, is technically East River, but is right on the banks, almost dead-center.)

[0]: https://simple.wikipedia.org/wiki/List_of_U.S._states_and_te...

2 days ago | parent | prev [-]
[deleted]
Aloisius 2 days ago | parent | prev | next [-]

Australia has an entry for a major city per state not because someone decided it was a good idea, but for the same reason Boise got one - they were the largest city in a jurisdiction that sometime after 1970 changed its timezone so it didn't match anyone else which necessitated adding an entry in order to record the unique timezone rules for them.

For instance, both Sydney and Melbourne both have entries because Victoria and New South Wales have started/ended daylight savings time in various years since 1970 on different dates like in 1990 when in Victoria it ended on March 18 while in New South Wales it ended on March 4.

It's also why Broken Hill has an entry despite being in New South Wales, they're in their own timezone.

Macha 3 days ago | parent | prev [-]

There's a tradeoff between subdivisions per country and the UX that causes for timezine picker dropdowns in making everyone else scroll past all the US, Canada, India etc. subdivisions

michaelt 3 days ago | parent | next [-]

Given that there's 600 entries anyway, you really want to use one of those dropdowns that also lets people search by substring. Or a clickable map.

You can't really escape the fact Europe/ is going to be after Africa/ and America/ and Antarctica/ and Asia/ and Australia/ and Canada/ and Etc/

yencabulator 2 days ago | parent | prev [-]

Ubuntu has had a map-based graphical picker for a long while.

SkiFire13 3 days ago | parent | prev [-]

> Those changes need to be recorded in the timezone database.

The issue with this thinking is that all existing datimes referring to that region will continue using the old timezone because the new one didn't exist yet.

2 days ago | parent [-]
[deleted]