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 backward
arquivo tem
Link Asia/Kolkata Asia/Calcutta
para que as pessoas possam usar a nova grafia ou a antiga.
Todos os outros arquivos /usr/share/zoneinfo
sã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
, 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
Ocódigo tz Makefile
mostra como eles são gerados e menciona o motivo: posix
ignora os segundos bissextos, right
inclui-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.