¿Por qué a Zone.tab le faltan tantas zonas horarias?

¿Por qué a Zone.tab le faltan tantas zonas horarias?

Hay más de mil archivos de zona horaria en su típico cuadro *nix (en /user/share/zoneinfo). Muchos de ellos varían sólo en fechas históricas que tienen poca relevancia para programas que sólo se preocupan por fechas recientes, o incluso sólo por la hora actual. Pero independientemente, haysonHay un montón de ellos, y es perfectamente legal seleccionar cualquiera de ellos como zona horaria para su sistema, así como utilizar cualquiera de ellos para un programa o shell específico configurando la variable de entorno TZ. Todos son válidos.

Y luego está el archivo Zone.tab (/usr/share/zoneinfo/zone.tab). Enumera sólo un poco más de 400 zonas horarias (414 en mi sistema). le falta unlotede zonas horarias. Entonces, la pregunta es ¿por qué? ¿Por qué no están todos ahí? Y como no están todos ahí, ¿cómo se decide cuáles se ponen ahí?

zone.tab incluye un código de país, así como longitud y latitud para cada zona horaria que enumera (que presumiblemente es la razón de la existencia del archivo), y notodolas zonas horarias realmente los tienen (por ejemplo, UTC no los tiene y no está en zona.tab), así que claramente, nocadaLa zona horaria se puede enumerar en Zone.tab. Pero, ¿por qué no aparecen en el archivo todos los que corresponden a una ciudad o región real (como lo hacen la mayoría)? ¿Por qué sólo 414 en lugar de los más de 1000 que realmente están disponibles?

Respuesta1

Un hilo tituladoUna nueva petición para la inclusión de Zone.tabOfrece alguna explicación de zone.tabpara qué se utiliza.

Su uso principal parece ser mostrar un mapa de ciudades y sus ubicaciones, para permitir al usuario elegir su zona horaria haciendo clic en una ciudad cercana.

Teniendo esto en cuenta, no es necesario conocer todos los alias de cada ciudad; basta con conocer una forma preferida de referirse a ella. (Pero parece que siempre incluye al menos una ciudad en cada país).

Los otros alias para cada zona se almacenan en eltzdatoscódigo fuente.

Por ejemplo, el backwardarchivo tiene

Link    Asia/Kolkata        Asia/Calcutta

para que la gente pueda utilizar la ortografía nueva o la antigua.

Todos los demás archivos /usr/share/zoneinfose generan a partir de este código fuente usando zic.

Pero no hay más de 600 alias, entonces, ¿a qué se debe la gran diferencia?

Generalmente se generan tres versiones de cada zona horaria: posix, righty la predeterminada de su 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

Elcódigo tz Makefilemuestra cómo se generan y menciona el motivo: posixignora los segundos intercalares, rightlos incluye.

Ver también:

Respuesta2

Por el siguiente enlacehttp://en.wikipedia.org/wiki/Tz_database

La base de datos de zonas horarias ahora la mantiene la Autoridad de Números Asignados de Internet.

información relacionada