Por que o zone.tab está faltando em muitos fusos horários?

11

Existem mais de mil arquivos de fuso horário na sua típica caixa * nix (em / user / share / zoneinfo). Muitos deles variam apenas em datas históricas que têm pouca relevância para programas que se importam apenas com datas recentes - ou mesmo apenas sobre o horário atual. Mas, independentemente disso, são uma 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 o Variável de ambiente TZ. Eles são todos válidos.

E depois 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 um lote de fusos horários. Então, a questão é por quê? Por que eles não estão todos lá? E como eles não estão todos lá, como é decidido quais são colocados lá?

zone.tab inclui um código de país e também longitude e latitude para cada fuso horário que ele lista (que provavelmente é o motivo da existência do arquivo), e não todos fusos horários realmente tê-los (por exemplo, UTC não tem esses, e não está em zone.tab), então, claramente, não todo fuso horário pode ser listado em zone.tab. Mas por que não são todos os que correspondem a uma cidade ou região real (como a maioria deles) listada no arquivo? Por que apenas 414 em vez dos 1000+ que estão realmente disponíveis?

    
por Jonathan M Davis 05.04.2012 / 08:44

2 respostas

6

Um tópico intitulado Um novo apelo por A inclusão do zone.tab oferece algumas explicações sobre para que zone.tab é usado.

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

Com isso em mente, não é necessário conhecer todos os aliases de cada cidade, sabendo que uma maneira preferida de se referir a ela é suficiente. (Mas parece que sempre inclui pelo menos uma cidade em cada país).

Os outros aliases de cada zona são armazenados no código-fonte tzdata .

Por exemplo, o arquivo backward tem

Link    Asia/Kolkata        Asia/Calcutta

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

Todos os outros arquivos em /usr/share/zoneinfo são gerados a partir desse código-fonte usando zic .

Mas não há mais de 600 aliases, então por que a grande diferença?

Geralmente, há três versões de cada fuso horário geradas: posix , right e 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

O tzcode Makefile mostra como eles são gerados e as menções a razão para eles: posix ignora os segundos bissextos, right os inclui.

Veja também:

por 28.04.2012 / 08:33
-1

Pelo seguinte link link

O Banco de Dados de Fuso Horário é agora mantido pela Autoridade de Atribuição de Números da Internet.

    
por 28.04.2012 / 01:07

Tags