Respuestas:
Una herramienta que me pareció más fácil de usar es dpkg-reconfigure
. Utilizar:
sudo dpkg-reconfigure tzdata
Se le dará una multitud de opciones, incluidas algunas que no están incluidas tzselect
.
Presumiblemente, esto es un poco tarde para el OP, y más para otros buscadores que llegan aquí.
Si necesita una solución no interactiva, pruebe esta solución al cambiar la zona horaria con dpkg-reconfigure tzdata y debconf-set-selections
echo "Europe/Zurich" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Puede averiguar su zona horaria hurgando en / usr / share / zoneinfo. De hecho, el comando dpkg-reconfigure de arriba copia el archivo apropiado desde allí a / etc / localtime. Solía hacerlo manualmente, y parece funcionar bien.
No se sorprenda si los procesos de larga ejecución no captan el cambio. Por ejemplo, las marcas de tiempo de registro de Apache vienen a la mente Considere si eso es importante y, por lo tanto, si necesita reiniciar los procesos en ejecución o incluso reiniciar.
/etc/localtime
aún no existe. Si existe y es un enlace suave a /usr/share/zoneinfo/whatever
, se toma como base y se /etc/localtime
actualiza en consecuencia, sobrescribiendo sus cambios.
Para editarlo de forma no interactiva en versiones recientes de Debian y Ubuntu (Stretch / Xenial, etc.), también debe eliminarlo /etc/localtime
, de lo contrario /etc/timezone
se sobrescribirá.
echo 'Europe/Zurich' > /etc/timezone
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata
Esta respuesta se basa en la respuesta mc0e '. No puedo agregar un comentario con mi reputación.
TL; DR
echo "TZ=Etc/UTC" >> /etc/environment
tzconfig
¿Dónde Etc/UTC
está su zona horaria preferida que encontró usando tzselect
?
Versión más larga
Cuando estas usando
dpkg-reconfigure tzdata
la información de la zona horaria no se guarda después del reinicio. Puede verificar su configuración con
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Si solo está actualizando /etc/timezone
, la actualización no será coherente /etc/localtime
, por lo tanto , es mejor ejecutar
tzconfig
Utilícelo tzselect
para averiguar qué zonas horarias existen realmente (o simplemente explore el /usr/share/zoneinfo
directorio).
En los sistemas POSIX, TZ
debe tener prioridad antes de /etc/localtime
:
export TZ='Europe/Berlin'
$ date
Tue Apr 10 08:51:03 CEST 2018
export TZ='Pacific/Efate'
$ date
Tue Apr 10 18:28:33 +11 2018
El uso directo TZ
puede ahorrarle muchas llamadas al sistema, ya que las funciones relacionadas con la fecha / hora de uso frecuente tienen que acceder al sistema de archivos cada vez que un programa solicita la fecha actual. Es una microoptimización, pero bastante simple.
TZ
en tu archivo de perfil crea un enlace simbólico? Eso no suena cierto en absoluto en mi experiencia. ¿Quizás quiso decir "También asegúrese de crear el enlace simbólico ..."?
$TZ
variable se lee por glibc
funciones: gnu.org/software/libc/manual/html_node/TZ-Variable.html
echo "TZ=Etc/UTC" >> /etc/environment
? te falta TZ=
parte ... (en caso de que alguien todavía esté ejecutando versiones antiguas de Debian). Además, las cosas no interactivas, como los demonios, seguirían usando la /etc/localtime
versión en lugar de un conjunto en TZ
...