Réponses:
Un outil que j'ai trouvé plus facile à utiliser est dpkg-reconfigure
. Utilisation:
sudo dpkg-reconfigure tzdata
Vous aurez une multitude de choix, dont certains qui ne sont pas inclus dans tzselect
.
C'est probablement un peu tard pour l'OP, et plus destiné aux autres chercheurs qui arrivent ici.
Si vous avez besoin d'une solution non interactive, essayez cette solution en changeant le fuseau horaire avec dpkg-reconfigure tzdata et debconf-set-selections
echo "Europe/Zurich" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Vous pouvez déterminer votre fuseau horaire en fouillant dans / usr / share / zoneinfo. En fait, la commande dpkg-reconfigure ci-dessus copie le fichier approprié à partir de là vers / etc / localtime. J'avais l'habitude de le faire manuellement, et cela semble bien fonctionner.
Ne soyez pas trop surpris si les processus de longue durée ne prennent pas la relève. Par exemple, les horodatages du journal Apache me viennent à l'esprit. Déterminez si cela est important et, par conséquent, si vous devez redémarrer les processus en cours d'exécution ou même redémarrer.
/etc/localtime
n'existe pas déjà. S'il existe et est un lien logiciel vers /usr/share/zoneinfo/whatever
, il est pris comme base et il /etc/localtime
est mis à jour en conséquence, écrasant vos modifications.
Pour le modifier de manière non interactive sur les versions récentes de Debian et Ubuntu (Stretch / Xenial etc.), vous devez également le supprimer /etc/localtime
, sinon /etc/timezone
il sera écrasé.
echo 'Europe/Zurich' > /etc/timezone
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata
Cette réponse est basée sur la réponse de mc0e. Je ne peux pas ajouter de commentaire avec ma réputation.
TL; DR
echo "TZ=Etc/UTC" >> /etc/environment
tzconfig
où Etc/UTC
est votre fuseau horaire préféré que vous avez trouvé en utilisant tzselect
.
Version plus longue
Lorsque vous utilisez
dpkg-reconfigure tzdata
les informations de fuseau horaire ne sont pas conservées après le redémarrage. Vous pouvez vérifier vos paramètres avec
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Si vous ne faites que la mise à jour /etc/timezone
, la mise à jour ne sera pas cohérente /etc/localtime
, il est donc préférable de l'exécuter
tzconfig
Utilisez tzselect
pour savoir quels fuseaux horaires existent réellement (ou simplement parcourir le /usr/share/zoneinfo
répertoire).
Dans les systèmes POSIX, le TZ
doit avoir priorité avant /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
L'utilisation directe TZ
peut vous faire économiser de nombreux appels système car les fonctions liées à la date / heure fréquemment utilisées doivent accéder au système de fichiers chaque fois qu'un programme demande la date actuelle. C'est une micro-optimisation, mais assez simple.
TZ
dans votre fichier de profil crée un lien symbolique? Cela ne semble pas du tout vrai dans mon expérience. Peut-être que vous vouliez dire "Assurez-vous également de créer le lien symbolique ..."?
$TZ
variable est lue par les glibc
fonctions: gnu.org/software/libc/manual/html_node/TZ-Variable.html
echo "TZ=Etc/UTC" >> /etc/environment
? il vous manque une TZ=
partie ... (si quelqu'un exécute encore d'anciennes versions de Debian). De plus, des éléments non interactifs comme les démons utiliseraient toujours la /etc/localtime
version au lieu d'un ensemble dans TZ
...