Por que zone.tab está faltando tantos fusos horários?

Por que zone.tab está faltando tantos fusos horários?

Existem mais de mil arquivos de fuso horário em sua caixa *nix típica (em /user/share/zoneinfo). Muitos deles variam apenas em datas históricas, o que tem pouca relevância para programas que se preocupam apenas com datas recentes - ou mesmo apenas com o tempo atual. Mas independentemente disso, hásãouma tonelada deles, e é perfeitamente legal selecionar qualquer um deles como o fuso horário do seu sistema, bem como usar qualquer um deles para um programa ou shell específico, definindo a variável de ambiente TZ. Eles são todos válidos.

E há o arquivo zone.tab (/usr/share/zoneinfo/zone.tab). Ele lista apenas um pouco mais de 400 fusos horários (414 no meu sistema). Está faltando ummuitode fusos horários. Então, a questão é por quê? Por que não estão todos lá? E como não estão todos lá, como é decidido quais serão colocados lá?

zone.tab inclui um código de país e também longitude e latitude para cada fuso horário listado (que presumivelmente é a razão da existência do arquivo), e nãotodosos fusos horários realmente os possuem (por exemplo, o UTC não os possui e não está em zone.tab), então claramente, nãotodoO fuso horário pode ser listado em zone.tab. Mas por que não estão todos aqueles que correspondem a uma cidade ou região real (como a maioria deles) listados no arquivo? Por que apenas 414 em vez dos mais de 1000 que estão realmente disponíveis?

Responder1

Um tópico intituladoUm apelo renovado para inclusão de zone.taboferece alguma explicação sobre para que zone.tabé usado.

Seu principal uso parece ser mostrar um mapa de cidades e suas localizações, para permitir ao usuário escolher seu fuso horário clicando em uma cidade próxima a ele.

Com isso em mente, não é necessário conhecer todos os pseudônimos de cada cidade, basta saber uma forma preferida de se referir a ela. (Mas parece que sempre inclui pelo menos uma cidade em cada país.)

Os outros aliases para cada zona são armazenados notzdataCódigo fonte.

Por exemplo, o backwardarquivo tem

Link    Asia/Kolkata        Asia/Calcutta

para que as pessoas possam usar a nova grafia ou a antiga.

Todos os outros arquivos /usr/share/zoneinfosão gerados a partir deste código-fonte usando zic.

Mas não existem mais de 600 aliases, então por que tanta diferença?

Geralmente há três versões de cada fuso horário gerado: posix, righte o padrão do seu sistema.

$ cd /usr/share/zoneinfo
$ find right -type f | wc -l
581
$ find posix -type f | wc -l
581
$ find . \( -name posix -o -name right \) -prune -o -type f | wc -l
586

Ocódigo tz Makefilemostra como eles são gerados e menciona o motivo: posixignora os segundos bissextos, rightinclui-os.

Veja também:

Responder2

Pelo link a seguirhttp://en.wikipedia.org/wiki/Tz_database

O banco de dados de fuso horário agora é mantido pela Internet Assigned Numbers Authority.

informação relacionada