Cómo leer la información de zona horaria

8

Estaba mirando un libro de programación del sistema. Mencionó usar una variable TZcon una lista separada por dos puntos que se usa desde /usr/share/zoneinfo. Probablemente el libro esté un poco desactualizado.

Revisé mi sistema Ubuntu

/usr/share/zoneinfo/Asia$ file Oral

da el siguiente resultado

Oral: datos de zona horaria, versión 2, marcas de tiempo de 14 gmt, 14 banderas de tiempo estándar, sin segundos intermedios, 51 tiempos de transición, 14 caracteres de abreviatura

Intenté abrirlo en vi pero el texto no se pudo leer. También intenté leer, /etc/localtimepero aquí tampoco se pudo leer.

  1. ¿Cómo puedo leer básicamente el tipo de archivos anterior?

  2. ¿Dónde se define la variable de entorno TZ en Ubuntu 10.04?

usuario registrado
fuente

Respuestas:

10

Bueno, ¿depende de lo que quieras leer?

Casi todos los programas solo dependen de $TZestar configurados en el entorno o /etc/localtimeser un enlace a un archivo de zona horaria. La biblioteca de C organizará automáticamente, por ejemplo, localtime()para devolver la hora correcta.

1) ¿Cómo puedo leer básicamente el tipo de archivos anterior?

zdump -v /etc/localtime le mostrará lo que hay dentro de los archivos.

Estos son archivos compilados que no están destinados a ser leídos por humanos. apt-get source tzdatate dará la fuente de donde provienen.

2) ¿Dónde se define la variable de entorno TZ en Ubuntu 10.04?

No está configurado por defecto. En cambio, /etc/localtimees una copia del archivo zoneinfo relevante y /etc/timezonees el nombre de esa zona.

Puede cambiarlos con sudo tzconfigoa través de la GUI.

Puede configurarlo, por ejemplo, ~/.envsi desea un valor predeterminado personal diferente para usted.

billar
fuente
Crear ~/.envcon UTCno tiene efecto en la zona horaria local.
jfs
Hoy en día es tzselect
jiggunjer
tzselectno es un reemplazo para tzconfig: simplemente elige una zona horaria y la imprime en stdout sin cambiar ninguna configuración . El reemplazo moderno real es dpkg-reconfigure tzdata.
Poolie